Ieeetran Howto
Ieeetran Howto
Ieeetran Howto
8, AUGUST 2015
I. I NTRODUCTION
ITH a recent IEEEtran class file, a computer running
LATEX, and a basic understanding of the LATEX language,
an author can produce professional quality typeset research
papers very quickly, inexpensively, and with minimal effort.
The purpose of this article is to serve as a user guide of
IEEEtran LATEX class and to document its unique features and
behavior.
This document applies to version 1.8b and later of IEEEtran.
Prior versions do not have all of the features described here.
IEEEtran will display the version number on the users console
when a document using it is being compiled. The latest version
of IEEEtran and its support files can be obtained from IEEEs
web site [1], or CTAN [2]. This latter site may have some
additional material, such as beta test versions and files related
to non-IEEE uses of IEEEtran. See the IEEEtran homepage
[3] for frequently asked questions and recent news about
IEEEtran.
Complimentary to this document is the file1 bare_jrnl_c
omsoc.tex, which is a bare bones example (template) file
of an IEEE Communications Society journal paper. Authors
can quickly obtain a functional document by using this file as
a starter for their own work.
It is assumed that the reader has at least a basic working
knowledge of LATEX. Those so lacking are strongly encouraged
to read some of the excellent literature on the subject [4][6].
In particular, Tobias Oetikers The Not So Short Introduction
to LATEX 2 [5], which provides a general overview of working
Manuscript created February 25, 2002; revised August 26, 2015. This work
was supported by the IEEE. This work is distributed under the LATEX Project
Public License (LPPL) ( http://www.latex-project.org/ ) version 1.3. A copy
of the LPPL, version 1.3, is included in the base LATEX documentation of all
distributions of LATEX released 2003/12/01 or later. The opinions expressed
here are entirely that of the author. No warranty is expressed or implied. User
assumes all risk.
See http://www.michaelshell.org/ for current contact information.
1 Note that it is the convention of this document not to hyphenate command
or file names and to display them in typewriter font. Within such
constructs, spaces are not implied at a line break and will be explicitly carried
into the beginning of the next line. This behavior is not a feature of IEEEtran,
but is used here to illustrate computer commands verbatim.
J. nofonttune
\addtolength{\headsep}{0.2in}
\addtolength{\topmargin}{-0.2in}
The \IEEEauthorrefmark{} command will generate a footnote symbol corresponding to the number in its argument. Use
this to link the author names to their respective affiliations. It is
not necessary prevent spaces from being between the \IEEEa
uthorblocks because each block starts a new group of lines
and LATEX will ignore spaces at the very end and beginning of
lines.
Note that because the text in the running headings is automatically capitalized, the \MakeLowercase{} command must be
used to obtain lower case text. The second argument is used
as a page heading only for the odd number pages after the
title page for two sided (duplex) journal papers. This page is
such an example. Technote papers do not utilize the second
argument. Conference papers do not have running headings,
so \markboth{}{} has no effect when in conference mode.
Authors should not put any name information in the headings
(if used) of anonymous peer review papers.
D. Publication ID Marks
Publication ID marks can be placed on the title page of
journal and technote papers via the \IEEEpubid{} command:
\IEEEpubid{0000--0000/00\$00.00\copyright2015 IEEE
}
VI. S ECTIONS
Sections and their headings are declared in the usual LATEX
fashion via \section, \subsection, \subsubsection,
and \paragraph. In the non-compsoc modes, the numbering
for these sections is in upper case Roman numerals, upper case
letters, Arabic numerals and lower case letters, respectively.
In compsoc mode, Arabic numerals are used exclusively for
(sub)section numbering.
The \paragraph section is not allowed for technotes or
compsoc conferences as these generally are not permitted to
have such a deep section nesting depth. If needed, \paragra
ph can be restored by issuing the command \setcounter{
secnumdepth}{4} in the document preamble.
Note that IEEE Computer Society journals (but not conferences!) are unusual in that they raise the very first section
(the introduction) heading above the start of the text. IEEEtran
provides a command to produce this effect:
\IEEEraisesectionheading{\section{Introduction}\labe
l{sec:introduction}}
This command is not intended for any use other than the
introduction section in compsoc journal mode. Note the need
to keep any \label that is to refer to the section immediately
after \section in the above as \IEEEraisesectionheadi
ng puts \section within a raised box.
A. Initial Drop Cap Letter
The first letter of a journal paper is a large, capital, oversized
letter which descends one line below the baseline. Such a
letter is called a drop cap letter. The other letters in the first
word are rendered in upper case. This effect can be accurately
produced using the IEEEtran command \IEEEPARstart{}{
}. The first argument is the first letter of the first word, the
second argument contains the remaining letters of the first
word. The drop cap of this document was produced with:
\IEEEPARstart{W}{ith}
Note that some journals will also render the second word in
upper caseespecially if the first word is very short. For more
usage examples, see the bare_jrnl.tex example file.
VII. C ITATIONS
Citations are made with the \cite command as usual.
IEEEtran will produce citation numbers that are individually
bracketed in IEEE style. ([1], [5] as opposed to the more
common [1, 5] form.) The base IEEEtran does not sort or
produce compressed ranges when there are three or more
adjacent citation numbers. However, IEEEtran pre-defines
some format control macros to facilitate easy use with Donald
Arseneaus cite.sty package [16]. So, all an author has to do
is to call cite.sty:
\usepackage{cite}
one reference, the note will be applied to the last of the listed
references. It is generally desirable that if a note is given, only
one reference should be listed in that \cite.
VIII. E QUATIONS
Equations are created using the traditional equation environment:
\begin{equation}
\label{eqn_example}
x = \sum\limits_{i=0}^{z} 2^{i}Q
\end{equation}
z
X
2i Q.
Size
Width
small
medium
large
negative small
Cmd.
Used for
Example
\,
\:
\;
\!
symbols
binary operators
relational operators
misc. uses
ab
a+b
a=b
ab
1/6 em
2/9 em
5/18 em
1/6 em
which yields
x=
TABLE I
M ATH S PACINGS U SED BY LATEX
(1)
i=0
(1)
+a + b
(2)
+a+b
(3)
+a+b
(4)
Note that (1) figures should be centered via the LATEX \cent
ering commandthis is a better approach than using the ce
nter environment which adds unwanted vertical spacing; (2)
the caption follows the graphic; and (3) any labels must be
declared after (or within) the caption command.
When referring to figures in typical IEEE papers, authors
should use the abbreviation Fig., but in IEEE Computer
Society conference papers they should use the full word
Figure. IEEEtran provides the string macro \figurename
which contains the correct name to use for the given formatting
mode.
The \includegraphics command is the modern, preferred, way of including images and provides a flexible interface that makes it easy to scale graphics to size. To use it,
the graphics or graphicx (the latter is recommended) must first
be loaded.
10
TABLE II
A S IMPLE E XAMPLE TABLE
First
Next
1.0
2.0
11
TABLE III
T HE S KEWING A NGLES () FOR Mu(H) + X2
AND Mu(H) + HX a
\label{table_example}
\centering
\begin{tabular}{c||c}
\hline
\bfseries First & \bfseries Next\\
\hline\hline
1.0 & 2.0\\
\hline
\end{tabular}
\end{table}
results in Table II. Note that the IEEE places table captions
before the tables and, given that they serve much like titles,
are usually capitalized except for words such as a, an, and, as,
at, but, by, for, in, nor, of, on, or, the, to and up, which are
usually not capitalized unless they are the first or last word of
the caption.
Be aware that, to prevent a change of meaning that would
result from case changes, the IEEE generally uses the standard
text font, not the small caps font, when rendering units as well
as letters in math in table captions. This can be achieved via
the use of \upshape:
\caption{Diagnosis of Rotor Faults in a DRFOC Drive U
sing the VCT(Flux Loop Bandwidth (FLB) = 10 {\upshap
e Hz}; 75% Load; 1450 {\upshape r/min})}
H(Mu) + F2
H(Mu) + Cl2
80.9b
86.7
83.2
87.7
(H)
(Mu)
inside. One way around this is to split the place the footnote
marker (\footnotemark) is located (within the table) from
where the footnote text itself is declared (outside of the table
using \footnotetext).
Another approach is to use the footnote.sty package (which
is part of Mark Woodings MDW Tools [17]) which allows
environments to be configured so as not to trap footnotes:
\usepackage{footnote}
\makesavenoteenv{tabular}
12
x = 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 + 21 + 23 + 25 + 27 + 29 + 31
(6)
y = 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 + 22 + 24 + 26 + 28 + 30
(7)
(adjusted as needed) within the double column structure. Incidentally, IEEEtran automatically compensates for this problem
when forming the paper title.
1) Double Column Equations: It is possible, but not pleasant, to use figure* to obtain double column equations. The
IEEE rarely uses double column equations because they can
waste space, so this capability is easy to abuse. Authors
who are considering the use of a double column equation
should verify that there are a few examples of such in papers
previously published in the journal they plan to submit to.
There are complications. Although the IEEE does not place
constraints on the order of the double column equations
relative to the equations of the main text (that is to say a
set of double column equations can be at the top or bottom
of a page in which they would normally appear in the middle
had they been regular equations), the double column equation
numbers must increase as one progresses down the page (i.e.,
double column equations at the bottom of a page must be
of higher number than those at the top). Furthermore, double
column equations should appear on the same page where they
are referenced (on the page they would have appeared had
they been regular equations). Compounding the difficulty even
further is the fact that LATEX 2 will not place double column
equations on the same page on which they are defined. Finally,
the IEEE does not generally allow other figures or tables to
come between the double column equations and the main text
(which are separated from each other by a rule). All of this
means that the place where a double column equation must be
defined has to be disconnected from the place where it will
eventually be referred to in the textand the user will have
to manually intervene in the equation numbering system.
Therefore, users have to (1) define double column equations
on the page prior to the one that they are to appear; (2) reset
the equation counter when the double column equations are
defined so as not to disturb the regular equation numbers;
(3) manually set the double column equation numbers and (4)
increment the equation counter at the point the double column
equations are referenced in the text so that they are accounted
for in the numbering of the regular equations after that point.
To do all of this, it is convenient to have a scratch pad
counter to temporarily save equation numbers. This can be
done via a command such as
\newcounter{MYtempeqncnt}
13
do its best to place the equations at the top of the next page.
Had it been [!b] instead, then the stfloats (or even better,
dblfloatfix) package would need to be loaded and the \vspac
e command, followed by the \hrulefill command, would
have to occur before the equations in the figure.
The double column equations can then been referenced in
the main text like:
% The previous equation was number five.
% Account for the double column equations here.
\addtocounter{equation}{2}
As can be seen in (\ref{eqn_dbl_x}) and
(\ref{eqn_dbl_y}) at the top of the page ...
}|
\labelsep
{z
}|
Label
List Text
{z
\leftmargin
This contrasts with IEEE lists which use the label box as
the reference point for the list structure. i.e., for a given
circumstance, the list labels will be indented by a certain
amount, the list text block will be indented from the label
boxes by a given amount and these spacings will determine
the position of the list text.
For these reasons, IEEEtran provides enhanced IED list
environments that make it much easier to produce IEEE style
lists. The underlying \list remains the same as in traditional
LATEX so as not to break code that depends upon it. IEEEtran
uses a new length variable, \IEEElabelindent, so that users
can specify IED list structures directly in IEEE fashion:
\labelwidth
z
Label
{z
}|
\labelsep
{z
}|
{
List Text
\IEEElabelindent
The IEEEtran IED lists ignore all external changes to the list
length parameters. Instead, IED lists are controlled exclusively
via two interfaces:
1) global control via the \IEEEiedlistdecl command;
and
2) local control via an optional argument that can be
provided to \itemize, \enumerate, and \descrip
tion.
For example, declaring
\renewcommand{\IEEEiedlistdecl}{\settowidth{\labelwi
dth}{Hello}}
Within an IED list, the local control is executed just after the
global control and therefore, the commands in the local control
can both augment and countermand those in the global control.
Please note that the code in the local and global controls are
executed in the same manner as normal LATEX code. Therefore,
the user should ensure that unwanted blank spaces do not
appear in the controls. If a control definition is too long to
fit on one line, shield the end of lines with % to prevent
them from being interpreted as blanks (Section IV-B1 has
some information on this topic). Also, note that the LATEX
parser requires that braces be placed around commands with
optional arguments that are placed directly within the optional
arguments of other commands:
\begin{itemize}[{\mycmd[1]{example}}]
14
1.0
0.75
0.0
0.0
0.0
0.0
loaded that overrides the IED list environments. For specialized applications, the original LATEX IED list environments are
retained as LaTeXitemize, LaTeXenumerate and LaTeXde
scription.
A. Itemize
The itemized lists will normally automatically calculate the
width of whatever symbol the current list level is using so that
a user can just call \begin{itemize}...\end{itemize}
without doing anything special. Furthermore, the auto-labelwidth feature will work properly even if \labelitemX has
been redefined (where X indicates i,ii, .. iv, whichever
is appropriate) before the list begins. However, if any item
symbols are to be specified via \item[X] (this is rare and may
well be nonstandard as far as IEEE related work is concerned),
then the following form can be used:
\begin{itemize}[\IEEEsetlabelwidth{Z}]
\item[X] blah
\item[Y] blah
.
.
\end{itemize}
C. Description
Generally speaking, the longest label width will always have
to be specified for description lists. Furthermore, the author
may wish to use \IEEEmathlabelsep for \labelsep when
building a math symbol list. For example:
\begin{description}[\IEEEsetlabelwidth{$\alpha\omega
\pi\theta\mu$}\IEEEusemathlabelsep]
\item[$\gamma\delta\beta$] Is the index of..
\item[$\alpha\omega\pi\theta\mu$] Gives the..
.
.
\end{description}
15
A. Proofs
Proofs are easily handled by the predefined IEEEproof
environment:
\begin{IEEEproof}
.
.
\end{IEEEproof}
XIII. E ND S ECTIONS
A. Appendices
The \appendix command is used to start a single appendix.
An optional argument can be used to specify a title:
\appendix[Proof of the Zonklar Equations]
\newtheorem{theorem}{Theorem}
\begin{theorem}[Einstein-Podolsky-Rosenberg]
\renewcommand{\theequation}{\thesection.\arabic{equa
tion}}
16
B. Acknowledgments
Acknowledgments and other unnumbered sections are created using the \section* command:
\section*{Acknowledgment}
\addcontentsline{toc}{section}{Acknowledgment}
Note the extra set of braces that are required to prevent the
LATEX parser from becoming confused when commands with
optional arguments are used within an optional argument of
another command. Alternatively, a LATEX macro (command)
could be defined to facilitate a shorthand notation for the
author photos. If the optional argument is not used, space will
be reserved for a photo and the message PLACE PHOTO
HERE will be displayed in place of a photo.
IEEEtran is a tad overly cautious about preventing the
IEEEbiography photo area from being broken across pages.
If it looks as though a IEEEbiography should be able to be
squeezed at the end of a page, but instead it begins on a
new page, try inserting
\vspace*{-2\baselineskip}
Note that manually set break points or page sizes will have to
be readjusted if the document content ever changes.
There are LATEX packages, such as balance.sty [33] and
flushend.sty [34], that are designed to automatically balance
the columns on the last page. Flushend does not require the
placement of any special command in the first column of the
last page, balance.sty may. However, the use of these packages
is not recommended because they are known to be less than
perfectly reliable in their operation. The author of balance.sty
does not guarantee that it will work with every possible type
of page, especially pages with figures. Under certain circumstances, flushend.sty will cause a spacing anomaly between
two lines within a reference in the second column of the last
page (becomes larger than the space between references). This
problem seems to result because the bibliography in IEEEtran
is a list with zero space between the list items which are in
footnotesize. The problem can also occur under article.cls for
the same type of list. It may be possible to manually correct
the flushend anomaly by tweaking the spacer at the column
break via a flushend command such as \atColsBreak{\vs
kip-2pt}, but having to do so partially defeats the purpose
of using the package in the first place. If using flushend.sty or
balance.sty, be sure to check the document carefully for any
spacing problemsespecially on the last page.
A PPENDIX A
I NSTALLING IEEE TRAN
First of all, users should be aware that, depending on the
target operating system of the IEEEtran archive packaging
(e.g., .tar.gz for Unix, or .zip for MS Windows), the plain text
based IEEEtran files (.bst, .cls, .sty, .tex, etc.) may use one of
two different types of end-of-line character conventions. Unix
(including Mac OS X) systems use line feed <lf> (0x0A),
while MS Windows systems use carriage return/line feed pairs
<cr><lf> (0x0D 0x0A) to signal the end of lines.10 Most
modern LATEX systems are tolerant of differing end-of-line
conventions, but some text editors arent. (Symptoms here
include text appearing all on one long line, double spacing,
etc.)
LATEX .cls files can be accessed system-wide when they are
placed in the <texmf>/tex/latex directory, where <tex
mf> is the root directory of the users TEX installation. On
systems that have a local texmf tree (<texmflocal>), which
may be named texmf-local or localtexmf, it may be
advisable to install packages in <texmflocal>, rather than
<texmf> as the contents of the former, unlike that of the
latter, are preserved after the LATEX system is reinstalled and/or
upgraded.
It is recommended that the user create a subdirectory <t
exmf or texmflocal>/tex/latex/IEEE for all IEEE
related LATEX class and package files. On some LATEX systems,
the directory look-up tables will need to be refreshed after
making additions or deletions to the system files. For TEX
Live systems this is accomplished via executing
texhash
17
18
cite.sty: Versions prior to 5.0 (2009-03-20) will not hyperlink citation numbers under hyperref.sty.
hyperref.sty: Versions prior to 6.72u will interfere with the
optional argument to \appendix.
Small caps font variations: The small caps font used in
the free LATEX systems have about 80% the height of normal
sized letters. However, the small caps font the IEEE uses in the
journals is slightly smaller with a ratio of around 75%. So, the
widths of the section headings produced under the free LATEX
systems will be slightly wider than that used in actual journals.
The small caps font used in many commercial LATEX systems
(such as those from YandY) has a ratio of about 65%. So,
those systems will produce section headings that are narrower
than those in IEEE publications. Such variations should not
be cause for concern.
A PPENDIX F
T HE IEEE EQNARRAY C OMMANDS
(Optionalfor advanced users)
19
TABLE IV
IEEE EQNARRAY P REDEFINED C OLUMN T YPES
I.D.
Description
I.D.
Description
l
c
r
L
C
R
s
t
u
left math
centered math
right math
left math with ords
centered math with ords
right math with ords
left text
centered text
right text
v
vv
V
VV
h
H
x
X
vertical rule
two vertical rules
double vertical rule
two double vertical rules
horizontal rule
double horizontal rule
empty
empty math
TABLE V
IEEE EQNARRAY P REDEFINED C OLUMN S EPARATION (G LUE ) T YPES
I.D.
Width*
I.D.
!
,
:
;
"
1/6 em
.
/
?
0.5\arraycolsep
*
+
-
1/6 em
2/9 em
5/18 em
1 em
2 em
Width
1.0\arraycolsep
2.0\arraycolsep
1 em = \quad,
2 em = \qquad
20
\IEEEeqnarraydefcol{g}{\hfil$\clubsuit$}{$\diamondsu
it$\hfil}
defines a column type named myp that will place text within
a 0.5 inch wide parbox which is centered on the cells baseline.
Note that because the column type name consists of more than
one letter, it has to be enclosed within an extra set of braces
in the column specifications or else it would be interpreted as
three adjacent columns m, y and p. Also, the contents
of the cell must be enclosed within braces so that (1) the \par
box command sees the entire contents as its argument; and (2)
the newline within the parbox will not be interpreted as being
the end of the alignment row. Be aware that it can happen that
a column is given an empty cell, such as in the second row in
the example, or when entering blank separator rows. When this
happens, a \relax will appear in the column which will be
acquired as the commands argument. Therefore, commands
in column definitions that acquire arguments from the cells
should not choke if fed \relax.
For reference, the definitions of the predefined column types
are shown here:
% math
\IEEEeqnarraydefcol{l}{$\IEEEeqnarraymathstyle}{$\hfil}
\IEEEeqnarraydefcol{c}{\hfil$\IEEEeqnarraymathstyle}{$\hfil}
\IEEEeqnarraydefcol{r}{\hfil$\IEEEeqnarraymathstyle}{$}
\IEEEeqnarraydefcol{L}{$\IEEEeqnarraymathstyle{}}{{}$\hfil}
\IEEEeqnarraydefcol{C}{\hfil$\IEEEeqnarraymathstyle{}}{{}$\h
fil}
\IEEEeqnarraydefcol{R}{\hfil$\IEEEeqnarraymathstyle{}}{{}$}
% text
\IEEEeqnarraydefcol{s}{\IEEEeqnarraytextstyle}{\hfil}
\IEEEeqnarraydefcol{t}{\hfil\IEEEeqnarraytextstyle}{\hfil}
\IEEEeqnarraydefcol{u}{\hfil\IEEEeqnarraytextstyle}{}
% vertical rules
\IEEEeqnarraydefcol{v}{}{\vrule width\arrayrulewidth}
\IEEEeqnarraydefcol{vv}{\vrule width\arrayrulewidth\hfil}{\h
fil\vrule width\arrayrulewidth}
\IEEEeqnarraydefcol{V}{}{\vrule width\arrayrulewidth\hskip\d
oublerulesep\vrule width\arrayrulewidth}
\IEEEeqnarraydefcol{VV}{\vrule width\arrayrulewidth\hskip\do
ublerulesep\vrule width\arrayrulewidth\hfil}%
{\hfil\vrule width\arrayrulewidth\hskip\doublerulesep\vrule
width\arrayrulewidth}
% horizontal rules
\IEEEeqnarraydefcol{h}{}{\leaders\hrule height\arrayrulewidt
h\hfil}
\IEEEeqnarraydefcol{H}{}{\leaders\vbox{\hrule width\arrayrul
ewidth\vskip\doublerulesep\hrule width\arrayrulewidth}\hfil}
% plain
\IEEEeqnarraydefcol{x}{}{}
\IEEEeqnarraydefcol{X}{$}{$}
The glue type widths are not evaluated when defined, but are
evaluated each time they are actually referenced as IEEEeqnarray column specifiers. Thus, for the second definition in
the example above, if \tabcolsep were to be revised after
the glue type was defined, the revised value would be what is
used.
Rubber lengths are allowed too. The fact that the centering
glue + is a known value can be exploited to achieve some
interesting effects. For example,
\IEEEeqnarraydefcolsep{17}{200pt minus 200pt}
E. Equation Numbering
Like \eqnarray, \IEEEeqnarray, has a star form, \IE
EEeqnarray*, which does not place equation numbers at the
end of each row by default. The default behavior of individual
rows can be overridden by placing the commands \IEEEye
snumber or \IEEEnonumber as needed in the last column.
\IEEEeqnarray also provides \IEEEyessubnumber and \I
EEEnosubnumber which can be used to enable or disable
a subequation number for the given row. To support this
feature, IEEEtran defines its own IEEEsubequation counter
(reset with changes to equation) and \theIEEEsubequati
on command.14
As of version 1.8 of IEEEtran, the star forms \IEEEyesn
umber*, \IEEEnonumber*, \IEEEyessubnumber* and \I
EEEnosubnumber* are available which persist across rows
until countermanded by another star command. The behavior
of later individual rows can be selectively overridden with the
use of the non-star forms as needed.
14 What is actually displayed is the \theIEEEsubequationdis command.
21
yields:
x1
(8a)
x2
(8b)
x3
(9a)
x4
(9b)
x5
(10)
x6
(11)
22
will set the default strut height to half the baselineskip used by
the large font size, even if the current baselineskip (and/or font
size) is different. The commands which are executed within the
optional argument are contained within their own environment
so as not to have any effects outside of the \IEEEeqnarra
ystrutsize command. For mimicking the action of \bas
elineskip, the typically recommended height and depth of
struts is 70% and 30%, respectively, of \normalbaselines
kip22 . \IEEEeqnarraystrutsize will assume these values
if its height and/or depth arguments are left blank. e.g., in the
previous example, the strut depth will be set to 30% of \nor
malbaselineskip for the large font size.
There is also a
\IEEEeqnarraystrutsizeadd{height}{depth}[decl]
23
Note the use of % to prevent the ends of the lines that end
in braces from being interpreted as unwanted spaces. Because
of the frequent need to call this sequence, the IEEEeqnarray
family provides the \IEEEeqnarraystrutmode command
which does the same thing.
24
ronments.23
The first argument specifies the height of the strut row, if left
blank or empty, the default value of 0.25\normalbaseli
neskip will be assumed. The second optional argument is
for commands which will be executed prior to the evaluation
of the first argument as is done with \IEEEeqnarraystrut
size. \IEEEeqnarrayseprow will not interrupt the column
definitions, so it will not cut vertical lines. If column definition
suspension is desired, use the cutting form which will override
all the column types in the entire row:
\IEEEeqnarrayseprowcut[height][decl]
which will override all the column definitions with one that
produces a horizontal rule. If the optional rule thickness is not
specified, the value of \arrayrulewidth will be used.
To produce a double rule row, use:
\IEEEeqnarraydblrulerow[rule_thickness][spacing]
which works the same way except that the separation row
will override all the column definitions. (Vertical rule columns
will not appear inside the double rule row produced by this
command.)
M. Useful Low Level TEX Commands
Although the use of lower level TEX commands is generally
frowned upon in LATEX, some of them are just too helpful to
ignore.
\phantom{} produces an invisible box with the width,
height and depth of its contents, but the contents themselves
will not appear in the output. There is also the \hphantom
{} and \vphantom{} forms which retain only the contents
width, or its height and depth, respectively. As an example,
look carefully at the footnotes at the bottom of Table V. This
table was produced using the \IEEEeqnarraybox command.
The footnotes are actually contained within the last two rows
of the table. Note how the left sides of the footnotes line
up, even though the first one has a superscript asterisk for a
footnote symbol. The reason that the second row lines up is
because, at its left side, it employs a horizontal phantom of
the very same symbol:
\hphantom{\textsuperscript{*}}
25
the same size even though one has tall symbols and the
other not.
The opposite of \hphantom{} is \rlap{} which displays
its contents, but with zero width. There is also an \llap{}
which does the same thing, but the contained object will appear
just to the left of the given point, rather than after as with
\rlap. For example, look closely at the first Width column
heading in Table V. The word Width is centered irrespective
of the asterisk. That is because the width of the asterisk was
zeroed:
Width\rlap{\textsuperscript{*}}
produces
A1 = 7
(12a)
A2 = b + 1
(12b)
A3 = d + 2
(12c)
and
When employed, \noalign must be the very first command in a roweven before any \IEEEeqnarraymulticol,
\IEEEeqnarrayomit, or row commands.
Be forewarned that the proper use of \noalign can be
tricky. There are three potential issues. (1) Remember that
\noalign will place its contents outside of the alignment.
So, the line spacing controls of the IEEEeqnarray commands
will not be in effect. The user may have to manually add \bas
elineskip and/or \jot spacing as needed (which was done
in the previous example). (2) Furthermore, \noalign does
not automatically place its contents within a box. However,
nonaligned material must be placed within a horizontal box
when within the vertical box produced by the \IEEEeqnarr
aybox command. Therefore, when using \noalign within
a \IEEEeqnarraybox, be sure to wrap things up in an
\hbox{}:24
\noalign{\hbox{and therefore}}
Note the use of the large \quad (1 em) spacing before the
conditional statements. The zeroing of \nulldelimiterspa
ce, an optional step, eliminates the width of the nonvisible
closing brace \right. in order to perfectly center the
visible portion of the equation.25
Note that both branches share a common equation number.
If an equation (sub)number is wanted for each branch, the
preferred solution is to use the cases.sty package as discussed
in Section IX-A. However, it is possible to use \IEEEeqnar
ray to build such a thingalthough it takes extra work and
a few tricks to do so. For example,
(
x,
for x 0
(14a)
|x| =
x, for x < 0
(14b)
was produced using the code:
\begin{IEEEeqnarray}[\setlength{\nulldelimiterspace}
{0pt}]{rls}
&x,&for $x \geq 0$\IEEEyesnumber\IEEEyessubnumber\\*
[-0.625\normalbaselineskip]
\smash{|x|=\left\{\IEEEstrut[3\jot][3\jot]\right.}&&
\nonumber\\*[-0.625\normalbaselineskip]
&-x,&for $x < 0$\IEEEyessubnumber
\end{IEEEeqnarray}
26
0
0+
1-
TABLE VI
N ETWORK D ELAY AS A F UNCTION OF L OAD
(15)
simple:
\begin{equation}
I = \left(\begin{IEEEeqnarraybox*}[][c]{,c/c/c,}
1&0&0\\
0&1&0\\
0&0&1%
\end{IEEEeqnarraybox*}\right)
\end{equation}
Average Delay
min max
1
10
100
0.057
0.124
0.830
* limited
usability
0.172
0.536
0.905*
more is the fact that most LATEX class files will not allow the
user to execute text font size commands within math mode
and the matrix is within an equation. So, \scriptsize cannot
be used to directly set the \baselineskip.
The first step is to set the math and text columns to
their desired styles. Then \baselinestretch is setup to be
used like \arraystretch. The trick is to run \scriptsize
within a \settowidth command which stores the \basel
ineskip of the \scriptsize font, multiplied by \baseli
nestretch, in \normalbaselineskip which is then used
to set \baselineskip, \jot, etc. Finally, \arraycolsep is
reduced to better suit the smaller font. Note the use of %
to prevent unwanted spaces from appearing after the braces at
the end of lines in \mysmallarraydecl.
3) Tables: Tables, especially those with lines, tend to be a
little more complicated. Table VI was made with the following
code:
\begin{table}[!t]
\centering
\caption{Network Delay as a Function of Load}
\label{table_delay}
\begin{IEEEeqnarraybox}[\IEEEeqnarraystrutmode\IEEEe
qnarraystrutsizeadd{2pt}{0pt}]{x/r/Vx/r/v/r/x}
\IEEEeqnarraydblrulerowcut\\
&&&&\IEEEeqnarraymulticol{3}{t}{Average Delay}&\\
&\hfill\raisebox{-3pt}[0pt][0pt]{$\beta$}\hfill&&\IE
EEeqnarraymulticol{5}{h}{}%
\IEEEeqnarraystrutsize{0pt}{0pt}\\
&&&&\hfill\lambda_{\mbox{min}}\hfill&&\hfill
\lambda_{\mbox{max\vphantom{i}}}\hfill&\IEEEeqnarray
strutsizeadd{0pt}{2pt}\\
\IEEEeqnarraydblrulerowcut\\
&1&&&
0.057&& 0.172&\\
&10&&& 0.124&& 0.536&\\
&100&&& 0.830&& 0.905\rlap{\textsuperscript{*}}&\\
\IEEEeqnarraydblrulerowcut\\
&\IEEEeqnarraymulticol{7}{s}{\scriptsize\textsupersc
ript{*}limited usability}%
\end{IEEEeqnarraybox}
\end{table}
Because this table has lines, the first step is to enable strut
mode line spacing. The strut height is then increased by a
couple of points to provide a little more headroom above the
letters.27 This table uses cutting horizontal rules and open
sides as is commonly done in IEEE publications. There are
three extra x columns which serve as place holders. The
x columns at each end serve as a quick way to get the
horizontal rules to extend a little past the contents of the table.
The middle x column serves as an attachment point for the
horizontal rule that is below Average Delay. Without this
27 Knuth
TABLE VII
P OSSIBLE F UNCTIONS
Range
x<0
(m)
(m) =
m
X
K i
27
i=0
x 0
(m) =
extra column, the left side of that horizontal rule would cut
into the middle double vertical rule.28 Notice how the is
smuggled in as part of the row containing the horizontal rule.
has to be smashed so that it will not add unwanted vertical
spacing. Likewise, the strut for that row is disabled. Also, \ra
isebox is used instead of \smash so that can be vertically
loweredotherwise it would appear on its baseline which is
too high for the purpose at hand. The \hfill on either side
of changes the justification of that cell to centered. The
min and max subscripts would not normally sit at the
same level because the i in min is slightly higher than the
letters in max. To fix this, a \vphantom i is added to
max. Because these subscripts sit so low, the depth of that
lines strut is increased a couple of points. Alternatively, one
could have just smashed the i. The asterisk next to 0.905
is reduced to zero width via \rlap so that it will not affect its
cells width or alignment. This example also illustrates how
to integrate table footnotes into the end of a table without the
help of external packages.
Strut spacing does not work so well for rows that contain
tall symbols because such objects routinely exceed the height
of the struts. Furthermore, increasing the strut height is often
not an option because (1) the height and depth of the tall
symbols must be measured or guessed; and (2) there may be
other rows which have normal line height. Table VII illustrates
such a situation. Its code is shown here:
\begin{table}[!t]
\centering
\caption{Possible $\Omega$ Functions}
\label{table_omega}
\begin{IEEEeqnarraybox}[\IEEEeqnarraystrutmode\IEEEe
qnarraystrutsizeadd{2pt}{1pt}]{v/c/v/c/v}
\IEEEeqnarrayrulerow\\
&\mbox{Range}&&\Omega(m)&\\
\IEEEeqnarraydblrulerow\\
\IEEEeqnarrayseprow[3pt]\\
&x < 0&&\Omega(m)=\sum\limits_{i=0}^{m}K^{-i}&\IEEEe
qnarraystrutsize{0pt}{0pt}\\
\IEEEeqnarrayseprow[3pt]\\
\IEEEeqnarrayrulerow\\
\IEEEeqnarrayseprow[3pt]\\
&x \ge 0&&\Omega(m)=\sqrt{m}\hfill&\IEEEeqnarraystru
tsize{0pt}{0pt}\\
\IEEEeqnarrayseprow[3pt]\\
\IEEEeqnarrayrulerow
\end{IEEEeqnarraybox}
\end{table}
ACKNOWLEDGMENT
The author would like to thank Ken Rawson, Kevin
Lisankie, Kimberly Sperka, Steve Wareham, Patrick Kellenberger, Laura Hyslop and Cathy Cardon of the IEEE for their
help and support in making this work possible. The knowledge
and prior work of TEX gurus such as Donald Arseneau,
Fred Bartlett, David Carlisle, Tony Liu, Frank Mittelbach,
Piet van Oostrum, Roland Winkler and Mark Wooding were
instrumental in developing the complex IEEEeqnarray family
of commands. The author is also grateful to Peter Wilson and
Donald Arseneau for allowing the inclusion of their \@ifmt
arg command.
Finally, this work might not have been possible had it
not been for the efforts of the prior IEEEtran developers:
Gerry Murray, Silvano Balemi, Jon Dixion, Peter Nchter and
Juergen von Hagen. Their work still lives on to some degree
within IEEEtran.
R EFERENCES
[1] (2015, Jul.) The IEEE website. [Online]. Available: http://www.ieee.org/
[2] M. Shell. (2015, Aug.) The IEEEtran.cls package. [Online]. Available:
http://www.ctan.org/pkg/ieeetran
[3] . (2015, Jul.) IEEEtran homepage. [Online]. Available: http:
//www.michaelshell.org/tex/ieeetran/
[4] H. Kopka and P. W. Daly, Guide to LATEX, 4th ed. Harlow, England:
Addison-Wesley, 2003.
[5] T. Oetiker, H. Partl, I. Hyna, and E. Schlegl. (2015, Jul.)
The not so short introduction to LATEX 2 . [Online]. Available:
http://www.ctan.org/pkg/lshort
[6] S. M. Moser. (2013, Aug.) How to Typeset Equations in LATEX.
[Online]. Available: http://moser.cm.nctu.edu.tw/manuals.html#eqlatex
[7] R. Fairbairns. (2014, Jun.) The TEX FAQ. [Online]. Available:
http://www.tex.ac.uk/
[8] M. Sharpe. (2015, Jul.) The newtx package. [Online]. Available:
http://www.ctan.org/pkg/newtx
[9] (2015, Jul.) Mathtime professional fonts. Personal TEX, Inc. [Online].
Available: http://www.pctex.com/mtpro2.html
[10] D. Carlisle and F. Mittelbach. (2015, Apr.) The bm package. [Online].
Available: http://www.ctan.org/pkg/bm
[11] (2013, Jan.) The amsmath package. The American Mathematical
Society. [Online]. Available: http://www.ctan.org/pkg/amsmath
[12] S. Pakin. (2009, Apr.) The IEEEconf.cls package. [Online]. Available:
http://www.ctan.org/pkg/ieeeconf
[13] J. D. McCauley, J. Goldberg, and A. Sommerfeldt. (2011, Dec.) The
endfloat package. [Online]. Available: http://www.ctan.org/pkg/endfloat
[14] H. Oberdiek. (2012, May) The ifpdf package. [Online]. Available:
http://www.ctan.org/pkg/ifpdf
[15] A. Gefen, Simulations of foot stability during gait characteristic of
ankle dorsiflexor weakness in the elderly, IEEE Trans. Neural Syst.
Rehab. Eng., vol. 9, no. 4, pp. 333337, Dec. 2001.
[16] D. Arseneau. (2015, Mar.) The cite package. [Online]. Available:
http://www.ctan.org/pkg/cite
[17] M. D. Wooding. (1999, Mar.) The MDW tools package. [Online].
Available: http://www.ctan.org/pkg/mdwtools
[18] D. Arseneau. (2010, Feb.) The cases package. [Online]. Available:
http://www.ctan.org/pkg/cases
[19] S. Toluis and V. Statulevicius. (2013, Oct.) The stfloats package.
[Online]. Available: http://www.ctan.org/pkg/stfloats
[20] D. Carlisle. (2015, Apr.) Packages in the graphics bundle. grfguide.pdf.
[Online]. Available: http://www.ctan.org/pkg/graphics
[21] K. Reckdahl. (2006, Jan.) Using imported graphics in LATEX 2 .
[Online]. Available: http://www.ctan.org/pkg/epslatex
28
[35] M. Shell. (2007, Jan.) The testflow diagnostic suite. [Online]. Available:
http://www.ctan.org/pkg/testflow
[36] T. Oetiker. (2015, Mar.) The acronym package. [Online]. Available:
http://www.ctan.org/pkg/acronym
[37] D. Arseneau. (2013, Dec.) The url package. [Online]. Available:
http://www.ctan.org/pkg/url
[38] M. Shell. (2015, Aug.) The IEEEtrantools package. [Online]. Available:
http://www.ctan.org/pkg/ieeetrantools