The IEEEtran Homepage

Overview

IEEEtran is a collection of software packages I develop and maintain for using the LaTeX typesetting system for IEEE-style research publications.

The most recent version of IEEEtran.cls is v1.8, which was released on December 27, 2012.

Version 1.8 has a number of significant changes over the v1.7 series including:

And more. See the changelog.txt file for a full list of all the changes. Enjoy!

Beware of a backward incompatible change to the IEEEeqnarray line numbering controls: Users must now issue a \IEEEyesnumber\IEEEyessubnumber combination for the start of each subequation sequence whereas with the v1.7 series a simple \IEEEyessubnumber would suffice. This new behavior allows IEEEeqnarray to resume subequation numbering across instances of IEEEeqnarray as well as provides for the possibility of subequations following a standard equation number (e.g., 14, 14a, 14b), which was not possible before. See Appendix F-E "Equation Numbering" of the IEEEtran HOWTO for details.

Note: The IEEE is not responsible for the content of this site. It is the authors' responsibility to ensure that their document complies with the guidelines of the specific journal or conference they are submitting to. The IEEE, its various societies, or other organizations throughout the world may produce derived classes from this code base which carry the same name and/or version number, but have formatting changes. Always use the class file suggested by your specific journal or conference. The advice here is general and may not be applicable to every IEEE publication. When in doubt, ask the appropriate IEEE editor. When reporting IEEEtran bugs to me, please first verify that the problem occurs with my reference IEEEtran release on CTAN.

Obtaining IEEEtran

There are two primary distribution sites for IEEEtran:

IEEEtran BibTeX and Tools Packages

In addition to the LaTeX class, the IEEEtran family contains:

Other Sources of Helpful Documentation

Here are some other recommended sources of information about LaTeX and/or IEEEtran:

Helpful Books

Frequently Asked Questions

Q: I'm using the fixltx2e or dblfloatfix package and get an error "! Infinite glue shrinkage found in box being split." What is wrong?

fixltx2e.sty has a known bug when \enlargethispage is used with two column documents, even under article.cls. dblfloatfix.sty requires and automatically loads fixltx2e.sty, so the problem can happen with it as well. This will be fixed in future versions of fixltx2e.sty. Until then, you can try the following patched version of fixltx2e.sty. Note that, on most LaTeX systems, fixltx2e.sty is usually located in the texmf/tex/latex/base subdirectory.

Thanks to Maarten Cauwe for reporting this issue and Frank Mittelbach for the patch code.

Q: Is there a way to use the fixltx2e package with the stfloats package so that I can get correctly ordered double column floats and be able to position them at the bottom as well?

Yes, use Morten Hogholm's dblfloatfix package, which contains the combined functionality of fixltx2e (the fix2col part) and the stfloats package.

Q: I'm using the dblfloatfix package and single column floats are being treated as if they were double column floats which results in an abnormal amount of white space around them. What is wrong?

The current version of dblfloatfix.sty has an obscure bug that was first reported and fixed by Mattias Nissler in a post "dblfloatfix bug", back in August 21, 2008 to the newsgroup comp.text.tex. This problem has been reported upstream and may be corrected in future versions of dblfloatfix.sty. In the meantime, here is a version of dblfloatfix.sty which contains Nissler's correction.

When using the endfloat package, how do I get references to table numbers to use Roman rather than Arabic digits?

Just invoke:

\renewcommand{\theposttbl}{\Roman{posttbl}}

after endfloat is loaded. To change that for figures as well, use:

\renewcommand{\thepostfig}{\Roman{postfig}}

How do I create a nomenclature list?

In IEEE journals, this is usually done as an unnumbered section before the introduction. You can use an IEEEdescription list with a little extra separation spacing via \IEEEusemathlabelsep:

\section*{Nomenclature}
\addcontentsline{toc}{section}{Nomenclature}
\begin{IEEEdescription}[\IEEEusemathlabelsep\IEEEsetlabelwidth{$V_1,V_2,V_3$}]
\item[$V_1,V_2,V_3$] Three-phase PWM output line voltages.
\item[$\theta$] Rotor angle (in ``electrical degrees'').
\item[$\omega$] Rotor (electrical) speed, corresponding to the time derivative of $\theta$.
\end{IEEEdescription}

If the symbols are too long and need to be broken across multiple lines, it isn't clear exactly what to do. IEEE frowns on this as I haven't seen an example of it yet. You can try not using the \IEEEusemathlabelsep to tighten the spacing a bit. If that still is not enough, you can try using an alignment such as IEEEeqnarraybox* to break the math across multiple lines (possibly with some indention after the first), using \\ as needed in the description text to balance lines:

\section*{Nomenclature}
\addcontentsline{toc}{section}{Nomenclature}
\begin{IEEEdescription}[\IEEEsetlabelwidth{$V_1,V_2,$}]
\item[\smash{\begin{IEEEeqnarraybox*}[][t]{l}
V_1,V_2,\\
\hphantom{V_1,{}}V_3
\end{IEEEeqnarraybox*}}] Three-phase PWM output line voltages.\\
\mbox{}
\item[$\theta$] Rotor angle (in ``electrical degrees'').
\item[$\omega$] Rotor (electrical) speed, corresponding to the time
derivative of $\theta$.
\end{IEEEdescription}

Q: I am getting a blank page before the title page. Why?

There is main text (not just definitions) in your document before \maketitle. The most likely cause of this is a \thanks that is outside of \author.

Q: \thanks does not work under conference mode, yet I need to use it. What can I do?

This is actually covered in the IEEEtran HOWTO, but it is easy to miss. The IEEE wanted me to lock out some commands, including \thanks when in conference mode. However, there are times when an author might need a "first footnote" with a conference paper -- most typically with acknowledgments of grants. To reenable the locked-out commands, just issue the command \IEEEoverridecommandlockouts in the preamble of your document.

Q: How do I get a single column, double-spaced document?

Just specify a draft mode (there are several to choose from including "draftcls", "draftclsnofoot", etc.) along with "onecolumn" in the class options. For example:

\documentclass[journal,10pt,draftclsnofoot,onecolumn]{IEEEtran}

The available class options are explained in the IEEEtran HOWTO.

Q: How do I get a single column abstract and/or index terms section in a two column document?

If you need the Computer Society format, use the compsoc mode as demonstrated in the bare_jrnl_compsoc.tex example file. If you don't want the Computer Society format, you can gain access to the space below the title/author area via the \IEEEaftertitletext command:

\IEEEaftertitletext{\vspace{-1\baselineskip}\noindent\begin{abstract}
This paper presents ... 
\end{abstract}
\noindent\begin{keywords}
Communication system routing, local area networks.
\end{keywords}
\vspace{1\baselineskip}}

\maketitle

Adjust the above and below vspace as desired.

Q: My references to figures and/or tables are showing incorrect numbers. What is wrong?

Remember that \label must go after or within \caption because \caption changes the counter that \label references. Placing \label prior to \caption within a figure or table will reference the section number rather than the figure/table number. This is one of the most frequently asked LaTeX questions of all time.

Q: I need to have the figures by themselves, one on a page, at the end. How do I do this?

Use the endfloat package:

\usepackage[nomarkers]{endfloat}
\let\MYoriglatexcaption\caption
\renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}}
% The two hack lines of code above are a slight modification of
% that suggested by in the endfloat docs (section 8.4.1) to ensure that
% the full captions always appear in the list of figures/tables - even if
% the user used the short optional argument of \caption[]{}.
% IEEE papers do not typically make use of \caption[]'s optional argument,
% so this should not be an issue. A similar trick can be used to disable
% captions of packages such as subfig.sty that lack options to turn off
% the subcaptions:
% For subfig.sty:
% \let\MYorigsubfloat\subfloat
% \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}}
% However, the above trick will not work if both optional arguments of
% the \subfloat command are used. Furthermore, there needs to be a
% description of each subfigure *somewhere* and endfloat does not add
% subfigure captions to its list of figures. Thus, the best approach is to
% avoid the use of subfigure captions (many IEEE journals avoid them anyway)
% and instead reference/explain all the subfigures within the main caption.

To disable the main figure captions, use the IEEEtran class option captionsoff. To start the references on a page by themselves, just place a \newpage before the start of the bibliography.

Q: Is it possible to get IEEEtran to work with the subcaption package?

The problem is that there does not seem to be a way to prevent subcaption from taking control of the main caption formatting away from IEEEtran like the caption=false option does under subfig.sty. IEEEtran has to format captions differently depending on its mode. An admittedly crude hack that might work is simply to restore IEEEtran's definition of \@makecaption:

\makeatletter
\let\MYcaption\@makecaption
\makeatother

\usepackage[font=footnotesize]{subcaption}

\makeatletter
\let\@makecaption\MYcaption
\makeatother

And then code figures like:

\begin{figure*}[!p]
\begin{minipage}[b]{0.5\linewidth}
\centering
\includegraphics[width=2.5in]{box}%
\subcaption{Case I}\label{fig_first_case}%
\end{minipage}%
\hfil
\begin{minipage}[b]{0.5\linewidth}
\centering
\includegraphics[width=2.5in]{box}%
\subcaption{Case II}\label{fig_second_case}%
\end{minipage}%
\caption{Simulation results.}
\label{fig_sim}
\end{figure*}

This did seem to work for me in one simple test, but more extensive testing is required.

Q: The endfloat package changes the running headings of the list of figures and tables pages it creates. How can I keep them as IEEEtran normally does?

All you have to do is to disable the \markboth command at the end of your document:

\def\markboth#1#2{\relax}

so that endfloat.sty can't change the headings of the pages that it adds (to the end of your document). It would be nice if the endfloat package provided an option to disable the alteration of the headings.

Q: I need to get rid of the page numbers. How do I disable or customize the headers and footers?

You can turn off the headers and footers the same way as is typically done in LaTeX by placing

\pagestyle{empty}
\thispagestyle{empty}

after \maketitle. However, fully customizing the headers and footers is complex. The important thing to understand is that IEEEtran uses up to three different page style definitions. (In what follows, note that LaTeX page styles are defined by macros of the same base names, but with an added "ps@" prefix.) They are IEEEtitlepagestyle, headings, and IEEEpeerreviewcoverpagestyle which are used by the title page, the main pages, and the peerreview cover page, respectively. Within each of these are definitions for the head and foot lines of the odd and even numbered pages. With this in mind, you can redefine the page styles like:

\makeatletter
\def\ps@headings{%
\def\@oddhead{\mbox{}\scriptsize\rightmark \hfil \thepage}%
\def\@evenhead{\scriptsize\thepage \hfil \leftmark\mbox{}}%
\def\@oddfoot{\scriptsize \@date\hfil DRAFT}%
\def\@evenfoot{\scriptsize DRAFT\hfil \@date}}
\makeatother

\pagestyle{headings}

Customize as needed. The \mbox{} are just empty boxes so that the \hfil remains even if the \leftmark and \rightmark, which can be defined by \markboth, are empty.

Also, you can obtain multiple line footers (or headers) by using a \parbox:

\newcommand{\MYfooter}{\smash{\scriptsize
\hfil\parbox[t][\height][t]{\textwidth}{\centering
line 1\\
line 2}\hfil\hbox{}}}

\makeatletter

% normal pages
\def\ps@headings{%
\def\@oddhead{\mbox{}\scriptsize\rightmark \hfil \thepage}
\def\@evenhead{\scriptsize\thepage \hfil \leftmark\mbox{}}
\def\@oddfoot{\MYfooter}%
\def\@evenfoot{\MYfooter}}

% title page
\def\ps@IEEEtitlepagestyle{%
\def\@oddhead{\mbox{}\scriptsize\rightmark \hfil \thepage}%
\def\@evenhead{\scriptsize\thepage \hfil \leftmark\mbox{}}%
\def\@oddfoot{\MYfooter}%
\def\@evenfoot{\MYfooter}}

\makeatother

% make changes take effect
\pagestyle{headings}
% adjust as needed
\addtolength{\footskip}{0\baselineskip}
\addtolength{\textheight}{-1\baselineskip}


\begin{document}

Q: I keep getting Type 3 fonts in my document even though I can get a 100% Type 1 font testflow page. What could the problem be?

Make sure that any EPS figures in the document are not using Type 3 fonts. Also, if using the amsmath package, be sure it is loaded like this:

\usepackage[cmex10]{amsmath}
\interdisplaylinepenalty=2500

The cmex10 option prevents amsmath from using a Type 3 font for math within footnotes. The \interdisplaylinepenalty=2500 (re)allows page breaks within aligned equations as IEEEtran normally does.

Another source of Type 3 fonts is some commands (e.g., \psdots) of the pstricks package. Although the particular Type 3 fonts used by pstricks are vector based (see the discussion here), their presence can still can get a manuscript rejected (see for example here). For this reason, perhaps future versions of pstricks should use only Type 1 fonts.

Q: My figures are misplaced, blank, corrupted, have excessive white space and/or have parts that are overlapping with the main text. What is wrong?

Assuming you are using the graphicx package properly, the most likely reason is that the application that made the EPS or PDF graphics is buggy and produced incorrect EPS or PDF code. Try converting the figures from EPS to PDF (or vice versa) to see if (re)distillation corrects the problem. Importing EPS/PDF graphics that have problems such as multiple pages can cause really strange symptoms. Unfortunately, there are many applications that have problems with exporting correct EPS output. Make sure the graphics are trimmed properly (BoundingBox) so that there won't be excessive white space around them.

Q: I'm having a font related problem. I'm pretty sure that it is a bug within IEEEtran.cls because under article.cls the problem does not happen. What is wrong?

The most likely reason for this is because article.cls uses the Computer Modern font for the main text, but IEEEtran.cls uses Times Roman and that it is this latter font which is triggering the problem. See if the problem shows up with article.cls when using Times Roman:

\documentclass{article}
\usepackage{times}
If the problem shows up under that, see if Testflow can help to diagnose and correct the problem.

Q: IEEEtran.cls generates an error before it even finishes loading. What is wrong?

Either your IEEEtran.cls file has become corrupted or is using end-of-line characters that are incompatible with your TeX system. This latter problem is most likely to occur with a Mac because TeX systems for that platform seem to be less tolerant of text files with improper end-of-line characters. Many text editors are capable of end-of-line conversions. For reference, end-of-line character(s) of MS Windows systems are carriage return (CR, 0x0D), line feed (LF, 0x0A); for Unix systems, including Mac OS X, it is line feed (LF, 0x0A); for Mac OS 9 and prior, it is carriage return (CR, 0x0D). This issue is not specific to IEEEtran and the advice here applies to all .cls, .sty, .tex, etc. files.

Q: The publisher ID mark (\IEEEpubid) is not in the correct position for the journal I plan to submit to. How do I raise/lower it?

Use this code just after IEEEtran is loaded (default values for the various modes are as shown):

\makeatletter
\def\@IEEEpubidpullup{1.3\baselineskip}
% 1.3\baselineskip is normal
% 2\baselineskip is used for technotes
% 0pt is used for compsoc mode
\makeatother

and adjust the value in the definition as needed.

Q: Can I obtain the source code for the HOWTO?

People sometimes ask for this because they think that the HOWTO code will provide some good examples of usage. Trust me, it won't. The reason is that a lot of special code must be used to display LaTeX code within a LaTeX document. For this and other reasons, I don't release the HOWTO source code.

A2 Hosting

Q: Why are there discrepancies between the IEEEtran HOWTO document at the IEEE Computer Society site and that of the "official" releases of IEEEtran?

The Computer Society HOWTO (at least that which is based on V1.6 of IEEEtran) was changed and reformatted using MS Word (gasp). V1.7 or later of IEEEtran now directly supports the Computer Society format via the compsoc option. Authors should take care to note that the Computer Society has some unique formatting requirements including, but not limited to, a 12pt main text font, abstracts which cannot contain math or citations, a list of allowed keywords that may differ from traditional IEEE, etc.

Q: How can I get the figure captions centered?

For versions 1.4 to 1.6c, inclusive, users could issue the command \centerfigcaptionstrue. However, this feature does not seem to be needed (and was removed in version 1.7) as IEEEtran.cls automatically does the correct formatting for each mode. Remember that IEEE journal captions are left justified, not centered as is done in IEEE conferences. However, if for some reason you need centered captions in traditional (non-compsoc) journal mode, you can use this code just after IEEEtran.cls (version 1.7) is loaded:

\makeatletter
\long\def\@makecaption#1#2{\ifx\@captype\@IEEEtablestring%
\footnotesize\begin{center}{\normalfont\footnotesize #1}\\
{\normalfont\footnotesize\scshape #2}\end{center}%
\@IEEEtablecaptionsepspace
\else
\@IEEEfigurecaptionsepspace
\setbox\@tempboxa\hbox{\normalfont\footnotesize {#1.}~~ #2}%
\ifdim \wd\@tempboxa >\hsize%
\setbox\@tempboxa\hbox{\normalfont\footnotesize {#1.}~~ }%
\parbox[t]{\hsize}{\normalfont\footnotesize \noindent\unhbox\@tempboxa#2}%
\else
\hbox to\hsize{\normalfont\footnotesize\hfil\box\@tempboxa\hfil}\fi\fi}
\makeatother

Q: I am getting incorrect margins with the IEEE International Microwave Symposium (IMS) conference's IEEEims.cls class (which is based on IEEEtran V1.6b). How do I fix this?

IEEEims.cls, at least the version distributed from IMS 2004 till present (revision 2003/11/18), contains a number of serious bugs. The most serious of which involves the alteration of LaTeX's \hoffset and \voffset parameters in an attempt to compensate for systems in which Adobe Acrobat Distiller is using an incorrect paper size. As a result, it is impossible to get correct margins on properly configured systems. Another problem involves a conditional that is not closed properly which will result in LaTeX issuing a warning. Lastly, the example paper_template.tex document uses a few outdated, and not recommended, LaTeX techniques such as the use of the long obsolete epsf package to import graphics. I have been unable to get IMS to make the needed corrections in the past.

Assuming that current/future IMS conferences want the same unusual margins as was required in IMS 2004/2005, you can use the \CLASSINPUT programmable margin feature of IEEEtran V1.7 and later to get IMS margins. Also, IMS wants a slightly different columnsep and extra space around the emdash after the abstract and keywords headings. The following code will achieve these effects with IEEEtran V1.7:

\newcommand{\CLASSINPUTtoptextmargin}{1.125in}
\newcommand{\CLASSINPUTbottomtextmargin}{1.125in}
\newcommand{\CLASSINPUTinnersidemargin}{0.85in}
\newcommand{\CLASSINPUToutersidemargin}{0.85in}
\documentclass[conference]{IEEEtran}
\setlength{\columnsep}{0.25in}
\makeatletter
\def\abstract{\normalfont
    \if@twocolumn
      \@IEEEabskeysecsize\bfseries\textit{Abstract}\textnormal{~~}\bfseries\textit{---}\textnormal{~~}\,
    \else
      \begin{center}\vspace{-1.78ex}\@IEEEabskeysecsize\textbf{Abstract}\end{center}\quotation\@IEEEabskeysecsize
    \fi\@IEEEgobbleleadPARNLSP}
\def\endabstract{\relax\ifCLASSOPTIONconference\vspace{0ex}\else\vspace{1.34ex}\fi\par\if@twocolumn\else\endquotation\fi
    \normalfont\normalsize}

\def\IEEEkeywords{\normalfont
    \if@twocolumn
      \@IEEEabskeysecsize\bfseries\textit{Index Terms}\textnormal{~~}\bfseries\textit{---}\textnormal{~~}\,
    \else
      \begin{center}\@IEEEabskeysecsize\bfseries Index Terms\end{center}\quotation\@IEEEabskeysecsize
    \fi\@IEEEgobbleleadPARNLSP}
\def\endIEEEkeywords{\relax\if@technote\vspace{1.34ex}\else\vspace{0.67ex}\fi
    \par\if@twocolumn\else\endquotation\fi
    \normalsize\normalfont}
\makeatother
.
.
\begin{document}

Obtaining Support

You can obtain support for IEEEtran from:

The Usenet newsgroup comp.text.tex
This the primary means of general support for LaTeX and BibTeX users.
You can contact me via the email address(es) at my contact page.
Please use this option only for packages that I maintain (not general help with LaTeX).

History of IEEEtran

In 1993, Gerry Murray and Silvano Balemi of the Automatic Control Lab of ETH in Zurich, Switzerland, produced the first version (V1.0) of IEEEtran.sty for LaTeX 2.09. In 1996, Jon Dixon of the University of Colorado modified IEEEtran.sty to become IEEEtran.cls (V1.1) for use under LaTeX 2e. Peter Nuchter then contributed some bug fixes to this version. In 2000, Juergen von Hagen of the University Karlsruhe, Germany, further modified IEEEtran.cls to produce what is now designated as V1.2 of IEEEtran.

In 2001, while a Ph.D. student at the Georgia Institute of Technology, I began enhancing IEEEtran and produced versions 1.3 to 1.5. In 2002, Ken Rawson of the IEEE approached me and requested the addition of a conference mode and formal documentation which resulted in the release of V1.6. The work continued with the release of V1.7 in 2007 which contained several bug fixes as well as support for the Computer Society format for the first time.