The IEEEtran BibTeX Style

Overview

The IEEEtran BibTeX style is used to produce IEEE style bibliographies. It supports advanced entry types including URLs, patents, periodicals and standards. There are also IEEEtran.bst-based variants (e.g., IEEEtranS.bst, IEEEtranSA.bst, IEEEtranN, etc.) that provide for sorted bibliographies, alpha labels and/or compatibility with Patrick W. Daly's natbib package.

The most recent version of IEEEtran.bst is v1.13, which was released on September 30, 2008.

Version 1.13 has a number of changes over the previous release (v1.12):

Please note that the following abbreviated definitions have been disabled in IEEEabrv.bib until the correct abbreviations can be verified with an actual example:

STRING{IEEE_J_LT         = "{IEEE} Trans. Learning Technol."}
STRING{IEEE_J_NSM        = "{IEEE} Trans. Netw. Service Manag."}
STRING{IEEE_J_SC         = "{IEEE} Trans. Services Comput."}
STRING{IEEE_J_STARS      = "{IEEE} J. Sel. Topics Appl. Earth Observations Remote Sens."}

If you know of an example (or, preferably, more than one) of an IEEE journal article reference entry showing the correct abbreviation of any of the above disabled string definitions, let me know and I'll correct it in the next release.

Enjoy!

Obtaining the IEEEtran BibTeX Style

There are two primary distribution sites for the IEEEtran BibTeX package:

BibTeX Documentation

The following BibTeX-related documents may be of interest:

Frequently Asked Questions

Q: What entry type do I use for standards submission reports?

These are technical reports:

@techreport{IEEEexample:techrepstdsub,
  author        = "S. Kandala",
  title         = "Changes to {A}nnex {D}",
  institution   = "{IEEE} 802.11 {TGe}",
  number        = "02/680r0",
  month         = oct,
  year          = "2002"
}
Note that some journals do not abbreviate the task group name. (e.g., "TGe" versus "Task Group E") Thanks to Guido Hiertz for contributing to this answer.

Q: Is there a version of IEEEtran.bst that works with the mcite package, which provides collapsed entries as is often done in physics journals?

Yes, but you have to use my mciteplus package rather than mcite.sty. The IEEEtran.bst mciteplus variants are included in the mciteplus package files.

Q: I am getting unwanted % signs in my URLs. Why?

The % signs are a side effect of BibTeX's line breaking algorithm where BibTeX uses % to prevent line breaks from being seen as spaces. Unfortunately, if the line break occurs within a URL, it is all too easy for a \url{} command to mistake them as being part of the URL. Recent versions of url.sty (versions 1.6 and later) and hyperref.sty (versions after 6.70s) will properly ignore % characters when they occur just before the end of a line. Upgrading your url.sty and/or hyperref.sty packages will correct the problem.

Q: Should I escape special characters (such as _ and %) within the url field of my .bib database entries?

The overwhelming consensus among TeX gurus is not to escape these special characters, but to enter them as-is in conjunction with an external URL package such as url.sty or hyperref.sty. Note that it is not safe to escape characters (e.g., \_) and use a URL handling package because the \url command of the url.sty and hyperref.sty packages will retain the (unwanted) backslash in the formatted URL.

Q: I'm doing specialized work (e.g., theses, etc.). How can I get IEEEtran.bst to format the full names?

You can change the BibTeX name format string during run time using an IEEEtran.bst control entry type in your .bib file:

@IEEEtranBSTCTL{myctlfullname,
  CTLname_format_string = "{ff~}{vv~}{ll}{, jj}"
}

and then invoking it via \bstctlcite:

\begin{document}
\bstctlcite{myctlfullname}
.
.

The definition of \bstctlcite can be found in the comments of at the top of the IEEEtran.bst source code as well as here:

\makeatletter
\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
\def\@bstctlcite[#1]#2{\@bsphack
  \@for\@citeb:=#2\do{%
    \edef\@citeb{\expandafter\@firstofone\@citeb}%
    \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
  \@esphack}
\makeatother

The IEEEtrantools package also provides the \bstctlcite command.

Q: I think I found a bug - the names of entries with names that are identical to the previous entry are replaced with dashes.

Surprisingly, this is correct. The IEEE "dashes" repeated names in their bibliographies. As explained in the HOWTO, this feature can be disabled via the control entry type:

@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
  CTLdash_repeated_names    = "no"
}

Q: I noticed that some of the abbreviations have been changed with the v1.12 release. What's up?

IEEE changed their abbreviations in early 2005. For example, month abbreviations are all now strictly three letters (e.g., "Sep." instead of the previous "Sept."). Furthermore, there has been changes in the journal name abbreviations (e.g., "Netw." instead of "Networking"). The IEEEtran.bst and IEEEabrv.bib files have been updated to reflect the new conventions.

Q: Why doesn't the "openbib" class option have an effect on IEEEtran.bst?

At present, IEEEtran.bst does not output \newblock commands which are needed for an "open bibliography" format. Adding this functionality is not difficult. However, it does pose the question as to what is meant by an "IEEE style open bibliography", including how to properly place the IEEEtran.bst additional fields (e.g., URLs, etc.) under such a format. Needless to say, an open bibliography could not be used for IEEE related work.

Other Variants

Here are some other IEEEtran-based variants that I have created. Because these have not been as fully tested as the bibstyles in the main IEEEtran branch, or because I do not have full specs to my satisfaction for the journals in question, unless otherwise noted, consider them to be beta test releases and watch out for bugs. Note that the .bst files here do use Unix end-of-line conventions (as I use Linux), so you may have to convert them with a text editor, especially when using them on Mac systems.

Note that just because a bibstyle supports a given entry type does not mean that the corresponding journal does. i.e., just because the bibstyle allows you to do something, does not mean that it is correct. Be sure to verify that the created bibliography meets the guidelines of the journal you plan to submit to. In some cases, an entry may have to be changed from that used in IEEE journals to be correct for the journal you are submitting to. For example, many journals do not support an online/electronic entry type. Of course, unless otherwise noted, the bibstyles here are not for use for IEEE-related work.

American Scientific Publishers' (ASP) Journals

For journals of the American Scientific Publishers, try my IEEEtran_ASP.bst (version 1.13, released on 2008/09/30).

Be aware of the following issues and caveats:

REVTeX and Physics Journals

The REVTeX and mciteplus compatible versions of IEEEtran.bst are distributed with my mciteplus package.

Obtaining Support

You can obtain support for the IEEEtran BibTeX style 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 or BibTeX).

History of the IEEEtran BibTeX Style

In 1985, Howard Trickey wrote the first ieeetr.bst based on plain.bst. In 1988, Oren Patashnik updated ieeetr.bst for use with BibTeX version 0.99a. In 1993, Silvano Balemi along with Richard H. Roy developed a new IEEE.bst (sometimes referred to as IEEEbib.bst) based on unsort.bst.

In 2002, while a Ph.D. student at the Georgia Institute of Technology, I developed IEEEtran.bst. IEEEtran.bst is a complete rewrite and offers advanced features including entry types for internet pages, patents, periodicals and standards.