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.8b which was released on August 26, 2015.

Version 1.8b has a number of changes over v1.8a 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 in the v1.8 series: 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 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: 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: \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: The conference or journal I am submitting to wants a different margin at the top of the title page than the other pages. How can I do this?

You can add additional space (positive or negative) above the title by redefining a special undocumented macro (note that this is a macro/command, not a length/dimension register such as \topmagin):

\renewcommand{\IEEEtitletopspaceextra}{20pt}
provided by IEEEtran v1.8b and later.

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. The 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: 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: How do I prevent citations in \thanks or \footnote from affecting the citation order?

The typical situation here is that an author wants to cite something within \thanks, but does not want that to take the place of the first reference in the main text. The question to ask first here is: Are citations even allowed in the footnotes and/or abstract section of the document? Assuming that it is OK with the journal or conference you are submitting to, you can use the undocumented command \IEEEnoauxwrite of IEEEtran v1.8b or later:

\author{... \thanks{... \IEEEnoauxwrite{\cite{myreference}}.}}
to accomplish this.

If the reference is not also cited elsewhere in the document, it will have to be manually inserted into the reference list of the bibliography via a \nocite. If this is done at the end of document, the citation will be last in the reference list rather than first as would normally happen with citations within \thanks.

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 had a known bug when \enlargethispage was 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. The solution is to update to version 1.1p (2014/04/27) or later of fixltx2e.sty. You can obtain the latest version of fixltx2e.sty from CTAN here. Note that, on most LaTeX systems, fixltx2e.sty is usually located in the texmf/tex/latex/base subdirectory.

Be aware that LaTeX2e kernels dated 2015 and later already have fixltx2e.sty's corrections built into the system in which case a warning will be issued if an attempt is made to load fixltx2e.sty as it is no longer be needed.

Thanks to Maarten Cauwe for reporting this issue and Frank Mittelbach for the corrected version.

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?

Older versions of dblfloatfix.sty had an obscure bug that was first reported and fixed by Mattias Nissler in a post "dblfloatfix bug", in August 21, 2008 to the newsgroup comp.text.tex. This problem has been corrected in dblfloatfix.sty version 1.0a dated December 31, 2012 and later. You can get the latest version of dblfloatfix.sty here.

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: I'm having problems with units or letters in math in table captions...

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 Using the VCT
(Flux Loop Bandwidth (FLB) = 10 {\upshape Hz}; 75\% Load; 1450 {\upshape r/min})
Thanks to Zhaowen Hou for providing information on this topic as well as the above example.

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 for the network.}
\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, try loading it like this:

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

Some older systems only have the 7pt math font in Type 3 which can cause Type 3 fonts in documents that have math in footnotes. The cmex10 option tells amsmath to scale a 10pt Type 1 font and use it for the 7pt math size. It is no longer needed on the more modern LaTeX systems. 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.

Also, under the comsoc option of IEEEtran, the math font will be changed to use the Times math font newtxmath. You can invoke this under article.cls via

\documentclass{article}
\usepackage{times}
\usepackage[cmintegrals]{newtxmath}
to see if the use of those fonts will trigger the problem on your system, and if so, it indicates that it is not the result of any bug in IEEEtran.

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: 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

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. In 2012, the V1.8 series was released which also supported the IEEE Transactions on Magnetics format. In 2015, V1.8b was released, which included support for the Times math font used in IEEE Communications Society publications.