A BibTEX Guide via Examples
Ki-Joo Kim
Version 0.2
April 6, 2004

Abstract
This document describes how to modify citation and bibliography styles in the body text,
how to create a bibliography style ¬le, and how to modify the bibliography style ¬le.


1 Introduction
There are two methods for adding bibliography at the end of your LTEX documents. The ¬rst
A
method is to use thebibliography environment as shown below:
\begin{thebibliography}{99}
\bibitem{knuth84} Knuth, D.E. \emph{The TEXbook}, Addison-Wesley, Reading,
Massachusetts, second edition, 1984,
\end{thebibliography}

Reference entries are added using \bibitem{key} and are called via \cite{key} in the body text.
You can change the bibliography style by formatting the bibitem entry. Even though this is a
convenient way to handle bibliography, there are two main problems. You have to format each
bibliography item and have to reformat it when you are required to change the bibliography style.
Thus, this method is good for short LTEX documents.
A
The second method is to use BibTEX. In this case you need two ¬les: bibliography style ¬le
(bst ¬le) and bibliography database ¬le (bib ¬le). In your LTEX source ¬le, you have to add the
A
following two lines for bibliography:
\bibliographystyle{unsrt} % Bibliography style file, unsrt.bst
\bibliography{moga} % Bibliography database file, moga.bib

When you type bibtex at the command prompt, the bib ¬le is formatted in accordance with the
prede¬ned rules in the bst ¬le. The resulting ¬le is a bbl ¬le that is referenced by your LTEX source
A
¬le. So the general compile sequence is: latex ’ bibtex ’ latex.
Once you have a correct bst ¬le, this method is good for writing long documents such as
journal papers, reports, books, and your dissertation. You can ¬nd lots of bibliography style ¬les in
the /texmf/bibtex/bst directory and see the BibTEX Style Examples.
If you are lucky, you may ¬nd the bibliography style ¬le from your university or the publisher.
Now the problem is how to crteate/modify a bst ¬le if you cannot ¬nd a right one and are strictly
required to follow the citation and bibliography styles by the publisher. For example:

• How can we change [1] in the body citation to (1), (Kim, 2000), Kim (2000), 1 , or whatever
the publisher wants? ’ Citation style.
• How can we change [1,2,3,4,12,14,13,7] in the body citation to [1-4,7,12-14] ? ’ Citation
style.
• How can we change [1] in the bibliography list to none, 1., 1), or whatever the publisher
wants? ’ Bibliography style.
• How can we change Kim, A.B., Lee, C.D., and Park, E.F. to AB Kim, CD Lee, EF Park, AB Kim,
CD Lee, and EF Park (w/ and), KIM, A.B., LEE, C.D., and PARK, E.F., Kim, Ava Bell, Lee, Cleo
Dave, and Park, Elvis Frank, or whatever you are required? ’ Bibliography style.
3. Citation Styles 2


• How can we change journal title styles (italic or normal?), volume (bold, presence of vol.,
style of vol., ...), number, page, and other styles (such as location of the publisher name and
its address)? ’ Bibliography style.

The main focus of this article is how to change citation and bibliography styles in BibTEX. Sec-
tion 2 shows one example of citation and bibliography styles required. Section 3 describes how to
change citation styles in the body text while Sections 4 and 5 present how to create and modify bib-
liography style ¬les to meet the given bibliography styles. Finally, Section 6 provides some useful
tips about citation and bibliography styles. Enjoy !


2 Example
Suppose that you are submitting a journal paper and the publisher requires the following citation
and bibliography styles:

• Citation style: Cite references in text by number in parentheses, in order of appearance.
• Bibliography style: Do not use italics or underscoring. List all known coauthors. For more
speci¬c styles, see the following examples.

1. AW Warner, DL White, WA Bonner. Real-time Fourier transformation via acousto-optics.
J Appl Phys 43:4489-4493, 1972. (for journal papers)
2. D Dzombak. Elements of Power Systems Analysis. 3rd ed. New York: McGraw-Hill,
1975, pp. 125-134. (for books)
3. KJ Kim, UM Diwekar, Solvent selection under uncertainty. In: GV Recklitis, ed. Clean
Solvents Design. New York: Marcel Dekker, 2002, pp.169-174. (for book chapters)
4. S Sorensen, S Skogestad, Multi-vessel batch columns. Proceedings of Advances in Batch
Distillation, Pittsburgh, P 2002, pp. 270-282. (for proceedings)
.A.

Some dif¬cult parts of this style are:

• Pure ¬rst name initial (no periods) + Last name (e.g., KJ Kim).
• Periods after the author ¬eld and journal, book, book chapter, and meeting titles. Commas
elsewhere.
• Year after page numbers in journals while year before page numbers in books, book chapters,
and meetings (if any).
• Bold-faced year in journals but no bold-faced year for others.
• ˜In: ™ in book chapters but no ˜In: ™ in proceedings.

In this case the citation style is quite easy to change and is described in the next section.


3 Citation Styles
The natbib package is strongly recommended for modifying citation styles. This package, devel-
oped by Patrick W. Daly1 , provides high degree of freedom for citation styles. The following table
summarizes most of the options that this package provides.
1
One of the authors of A Guide to LTEX: Document Preparation for Beginners and Advanced Users.
A
3. Citation Styles 3


Options Function
round parentheses (default)
round
square brackets
square
curly braces
curly
angle brackets
angle
colon between multiple citations (default)
colon
comma between multiple citations
comma
authoryear citations (default)
authoryear
numerical citations
numbers
superscripted numerical citations, as in Nature
super
sorts multiple citations in accordance with the list of refer-
sort
ences
sorts and compresses if possible
sort&compress
rede¬nes thebibliography to issue \section* instead of
sectionbib
\chapter*

Many of the above options can be invoked using \bibpunct{}{}{}{}{}{} in the preamble.
The six mandatory arguments are:
1. opening bracket: ˜(™, ˜[™, ˜{™, or ˜<™
2. closing bracket: ˜)™, ˜]™, ˜}™, or ˜>™
3. separator between multiple citations: ˜;™ or ˜,™
4. citation style: ˜n™ for numerical style, ˜s™ for numerical superscript style, or ˜a™ for author“year
style
5. punctuation between the author names and the year
6. punctuation between years or numbers when common author lists are suppressed: ˜,™ or ˜;™
So the following two settings generate the same citation styles
\usepackage[sort&compress]{natbib}
\bibpunct{[}{]}{,}{n}{}{;}
.... equals ....
\usepackage[square,comma,numbers,sort&compress]{natbib}

For superscript citation style as in Nature the following code is enough.
\usepackage[super,sort&compress]{natbib}

The reference can be called using \cite, \citet, or \citep commands. For the number cita-
tion mode,
[21]
\cite{jon90} =’
Jones et al. [21]
\citet{jon90} =’
[21]
\citep{jon90} =’
For the author“year citation mode,
Jones et al. (1990)
\cite{jon90} =’
Jones et al. (1990)
\citet{jon90} =’
Jones et al. (1990, Chap. 2)
\citet[Chap.2]{jon90} =’
Jones, Baker, and Williams (1990)
\citet*{jon90} =’
(Jones et al., 1990)
\citep{jon90} =’
(Jones, Baker, and Williams,
\citep*{jon90} =’
1990)
4. Making a bst File 4


4 Making a bst File
To create a bst ¬le, the custom-bib package, also developed by Patrick W. Daly, is the best solution.
Download makebst.ins, makebst.dtx, and merlin.mbs from CTAN. The merlin.mbs ¬le is a
master bibliography style ¬le, and a bst ¬le is extracted from this mbs ¬le under the given options
that you will choose now.

1. Type latex makebst.ins in the command mode. This will generate makebst.tex and
makebst.drv.
2. Type latex makebst to create a bst ¬le. You will be asked a lot of questions regarding the
bibliography style options. If you are not sure about the questions, just select the default
value (*). Some important style questions are given below in order of appearance. Remember
that we want to stick on the bibliography styles described in Section 2. Also note that there is no
way to go back and correct an error during this job.2

(a) The ¬rst question that you will meet is Do you want a description of the usage?
’ yes.
(b) Enter the name of the MASTER file ’ default.
(c) Name of the final OUTPUT .bst file? ’ type your .bst ¬le name (here, imsi).
(d) Do you want verbose comments? ’ yes.
(e) <<STYLE OF CITATIONS: ’ (a) Author-year with some non-standard interface.
(f) <<AUTHOR-YEAR SUPPORT SYSTEM ’ Natbib for use with ˜.
(g) <<ORDERING OF REFERENCES ’ (c) Citation order (unsorted ...).
(h) <<AUTHOR NAMES ’ (x) Surname + pure initials (Smith JF). Remember that the
style JF Smith is not provided. We will modify this later!
(i) <<DATE POSITION ’ (*) Date at end. Remember that we need year after page num-
bers in journals but year before page numbers in books, book chapters, and meetings.
(j) <<JOURNAL NAMES ’ (x) Dottles journal names as ™Phys Rev™. This is required
by the book publisher in Section 2.
(k) <<VOLUME PUNCTUATION ’ (*) Volume with colon as vol(num):ppp.
(l) <<JOURNAL NAME PUNCTUATION ’ (x) Space after journal name. This is required
by the book publisher in Section 2.
(m) <<PUBLISHER POSITION ’ (e) Publisher after edition.
(n) <<PUNCTUATION BETWEEN SECTIONS ’ (t) Period after titles of articles, books,
etc else commas. We need a period after the author ¬eld (e.g., JF Smith, KJ Kim.
˜).
(o) <<PUNCTUATION AFTER ™IN™ ’ (c) Colon after ™in™ (as ™In: ..™). But we do
not need In: in meetings (i.e., in collections and in proceedings).
(p) Finished! Batch job written to file ™imsi.dbj™ Shall I now run this batch
job? <NO> ’ If you say yes, it creates your .bst ¬le.

All done! If you want to change some options that you have made, open the dbj (document
batch job ?) ¬le.3 The questions are in CAPITAL LETTERS, and the options that you have made are
uncommented in the ¬rst column. Comment out the wrong choice by putting % in the ¬rst column,
2
But you can correct it later.
3
This is also an ASCII ¬le. This manual editing is appropriate only when you made a wrong independent choice. For
example, you may not select author-number style options under the number citation system selected in the Step-(e) in
Section 4.
5. Modifying Bibliography Style Files 5


and uncomment the choice that you want to select by removing %. Then type latex imsi.dbj,
resulting in a new imsi.bst ¬le.


5 Modifying Bibliography Style Files
Of course the custom-bib package may not guarantee all the styles that you are required. In this
case some modi¬cations to satisfy the requirement are needed.
The imsi.bst ¬le generated in the previous section produces the reference like this:
[12] Kim KJ, Urmila UM, Solvent selection under uncertainty. In: Proceedings of Clean Sol-
vents Symposium, Pittsburgh, 1980, pp. 120-125.

[13] Robinson C, Elements of Fractional Distillation. New York: McGraw-Hill, forth ed., 1950.
Due to my poor knowledge about the language (post¬x stack language) used in a bst ¬le, I could
only provide minimal hacking tips for the given example. For more information read btxhak.dvi
and btxbst.doc in the document repository of your TEX ¬le system.

5.1 List Number Style
We want to change the reference numbering system from [12] to 12. This can be done in the
preamble by putting the following code:
\makeatletter % Reference list option change
\renewcommand\@biblabel[1]{#1.} % from [1] to 1.
\makeatother %

The option #1. can be anything that you want to change. For example, #1). creates “1).” in
bibliography. If empty in the {}, then no labels are printed in the bibliography.

5.2 Author Name Style
We want to switch the order of surname and ¬rst name. Open the imsi.bst ¬le. Go down to ¬nd
the FUNCTION {format.names} code. You will see a line similar to "{vv˜}{ll}{ f{}}{ jj}".
The letter vv is the von part (e.g., von Neumann), ll is the last name part, ff is the ¬rst name
part, and jj is the junior part. A double letter (e.g., ll) takes full name while a singe letter (e.g.,
f) abbreviates full name. Thus the current option creates like “Robinson C” since there is no von
and junior parts. So in order to switch, just change the order like this "{f{}˜}{vv˜}{ll}{ jj}".

5.3 Period Style
We want to put ˜.™ after the author ¬eld. Go down to ¬nd the FUNCTION {article} code. Below
the author format.key output line, insert a new.sentence line. According to the Step (n) in
Section 4, <<PUNCTUATION BETWEEN SECTIONS in Section 4, this insertion will put period at the
end of the author ¬eld.

5.4 Presence of In:
We want to remove ˜In:...™ in proceedings and meetings. Go down to the FUNCTION {incollection}
code. At the line format.in.ed.booktitle "booktitle" output.check, change to format.booktitle
"booktitle" output.check (i.e., remove .in.ed). Do the same thing for FUNCTION {inproceedings}.
6. Useful Tips 6


5.5 Edition Style
We want to move edition after book tittle. Go to the FUNCTION {book} code. Move the format.edition
output line to just above the format.number.series output line.


5.6 Year Style
We want bold-faced years only in journals. First de¬ne the following bolden function for bold face:
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
{ "{\bf " swap$ * "}" * }
if$
}

Go down the page and ¬nd “article” function and add bolden to the following line as shown
below:
FUNCTION {article}
....
format.date "year" output.check bolden % bolden is added!



Useful Tips4
6
Question: How can I change the bibliography heading title?
Answer: See the following examples:
For book-classes: \renewcommand\bibname{your bibliography title}
For article-classes: \renewcommand\refname{your bibliography title}

Question: I have two bibliography entries that BibTEX insists on putting in the wrong order! These
entries are identical except for volume:
L. Dornhoff, Group Representation Theory, vol. B, Marcel-Dekker, NY, 1971
L. Dornhoff, Group Representation Theory, vol. A, Marcel-Dekker, NY, 1971
Surly Volume A should precede Volume B, but BibTEX insists on listing them backwards!
Answer: BibTEX sorts the items in the bib ¬le based on author“year“title orders. But in some cases
where the same author publishes several papers in the same year BibTEX cannot properly sort the
items.
Add the following @PREAMBLE command at the top of your bibliography database ¬le:
@PREAMBLE{"\newcommand{\noopsort}[1]{}"}

Modify the year ¬eld or any other relevant ¬eld for proper sorting of the two bibliography items.
For example:
For Vol. A entry : year = "{\noopsort{a}}1971"
For Vol. B entry : year = "{\noopsort{b}}1971"

If this does not work, put {\noopsort{a}} in front of the titles.
Question: How can I use URLs with BiBTEX?
Answer: From TEX“FAQ, there are two easy methods with \usepackage{url} or \usepackage{hyperref}
package. The ¬rst one is to use howpublished ¬eld in the @misc function.
4
The tips in this section are collected from web sites or my personal experiences.
6. Useful Tips 7


@MISC{...,
...,
howpublished = "\url{http://...}",
}

The other one is to use note ¬eld with standard functions such as techreport, article, and book.
@TECHREPORT{...,
...,
note = "\url{http://...}",
}

Question: How to put bibliography at each chapter in the book class?
Answer 1: If you use thebibliography environment, then put the following in the preamble.
\makeatletter
\renewenvironment{thebibliography}[1]
{\section*{\Large\bibname % \chapter* is changed to \section*
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode˜\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty ˜thebibliography™ environment}}%
\endlist}
\makeatother

Answer 2: If you use BibTEX, ¬rst load the natbib and chapterbib packages.
\usepackage[sectionbib]{natbib}
\usepackage{chapterbib}
...
\include{chap1}
\include{chap2}
...

Then each chapter ¬le has the following form:
\chapter{title}
...
\bibliographystyle{apalike}
\bibliography{moga}

Question: I want no citation in the text but list in the bibliography.
Answer: With \nocite{key} the bib entry with the key is part of the bibliography without any
citation in the body text.