A Bibtex Guide Via Examples: Ki-Joo Kim April 4, 2003
A Bibtex Guide Via Examples: Ki-Joo Kim April 4, 2003
Ki-Joo Kim∗
Version 0.1
April 4, 2003
Abstract
This document describes how to (i) modify citation styles in your body text, (ii) make your
own bibliography style (.bst) file, and (iii) modify the bibliography style file.
Contents
1 Introduction 1
2 Example 2
3 Citation Styles 3
6 Useful Tips 6
7 Closing Remark 8
1 Introduction
This short document describes how to change/modify citation and bibliography styles for your LATEX
documents. As you already know, there are basically two methods for adding bibliography at the
end of your LATEX documents. The first method is to use thebibliography environment. Reference
entries are added using \bibitem{key} and are called via \cite{key} in the body text. You can
change the style of references by formatting the bibitem entry. This is a convenient way to handle
bibliography. However, there are big problems: you have to format each reference item and have
∗ kim dot ki-joo at epa dot gov
2. Example 2
to reformat it when you are required to change bibliography style. Thus this method is good for
small LATEX documents.
The second method is to use BibTEX. In this case you need two files: bibliography style (format)
file (.bst file) and bibliography database file (.bib file). In your text, you can add the following
two lines for bibliography:
The .bib file is formatted by the predefined rules in the .bst file, resulting in .bbl file which is
referenced by your LATEX source file.
Once you have a correct .bst file, this method is good for long LATEX documents such as journal
papers, reports, books, and your dissertation. You can find lots of bibliography style files in the
\bibtex\bst directory in your \texmf tree. If you are lucky, book publishing companies and your
universities may provide the bibliography style files. You can also see examples of many .bst files
on the web (http://www.cs.stir.ac.uk/˜kjt/software/latex/showbst.html).
Now the problem is how to crteate/modify a .bst file if you cannot find a right one and are
strictly required to follow the citation and reference styles by the book publishing companies. For
example:
• How can we change [1] in the body citation to (1), (Kim, 2000), Kim (2000), 1 , or whatever you
or the journal publisher want? ⇒ 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 you or the journal
publisher want? ⇒ 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.
• 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.
Section 2 shows one example of citation and bibliography styles required. Section 3 describes how
to change citation styles in the body text while Section 4 and 5 present how to create and modify
bibliography style files 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 your journal paper and the company requires the following citation
and reference styles:
3. Citation Styles 3
• Citation style: Cite references in text by number in parentheses, in order of appearance (e.g.,
The algorithms in literature (1-3,5,22)).
• Bibliography style: Do not use boldface, italics, or underscoring. List all known coauthors.
For more specific styles, see the following examples.
3 Citation Styles
The natbib package has been strongly recommended for reference citation. This package, devel-
oped by Patrick W. Daly1 , provides high degree of freedom for citation style change. The following
examples are taken from his natbib.dvi file.
In the author-year citation mode with an author-year .bst file,
\citet{jon90} =⇒ Jones et al. (1990)
\citet[Chap. 2]{jon90} =⇒ Jones et al. (1990, Chap. 2)
\citep{jon90} =⇒ (Jones et al., 1990)
\citep{jon90,jam91} =⇒ (Jones et al., 1990; James et al., 1991)
\citet*{jon90} =⇒ Jones, Baker, and Williams (1990)
\citep*{jon90} =⇒ (Jones, Baker, and Williams, 1990)
In the number citation mode with an author-year .bst file,
\citet{jon90} =⇒ Jones et al. [21]
\citep{jon90} =⇒ [21]
\citep{jon90,jam91} =⇒ [21,32]
1 One of the authors of A Guide to LATEX: Document Preparation for Beginners and Advanced Users.
4. Making a .bst File 4
In the number citation mode with a number .bst file, only \cite{} is valid and generates
citation number in [ ]. Thus from these three modes, it is better to make an author-year .bst file all
the time!
The above styles are the default settings of the package. Now we want to use citation numbers
in ( ), instead of [ ]. There are many options; but here the author only shows his flavor.
The option [sort&compress] generates sorted and compressed number citations (e.g., [1,2,9,3,14,16,15]
⇒ [1-3,9,14-16]). The options in \bibpunct creates curly parentheses ( ) (instead of [ ]), ‘,’ divider
between citation numbers (instead of ‘;’), and number citation from the option {n} (the default is
{a} for author-year citation).
For more information, please read the manual, natbib.dvi. One more tip from this file is
superscript citation as seen in Nature. Put the following two lines in the preamble and use \cite{key}
in the body text.
\usepackage[sort&compress]{natbib}
\citestyle{nature} % Superscript citation style (Nature style)
1. Type latex makebst.ins in the command mode. This will generate makebst.tex and
makebst.drv.
2. Type latex makebst to make your own .bst file. 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 (not all the questions!) are given below
in order of appearance. Remember that we want to stick on the bibliography styles described in
Section 2. Also remember that there is no way to go back and correct an error during this job.2
(a) The first 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 file 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 ˜.
2 Do not worry. You can correct it later.
5. Modifying Bibliography Style Files 5
Now all done! If you want to change some options that you made, open the .dbj (document
batch job ?) file.3 The questions are in CAPITAL LETTERS, and the options that you made are
uncommented at the first column. Comment out the wrong choice by putting % in the first column,
and uncomment the choice that you want to select by removing %. Then type latex imsi.dbj,
resulting in a new imsi.bst file.
[12 ] Kim KJ, Urmila UM, Solvent selection under uncertainty. In: Proceedings of Clean Solvents
Symposium, Pittsburgh, 1980, pp. 120-125.
[13 ] Robinson C, Elements of Fractional Distillation. New York: McGraw-Hill, forth edn., 1950.
First, we want to change the reference numbering system from [12] to 12. This can be done in
the preamble by putting the following code:
example, you may not select author-number style options under the number citation system selected in the Step-(e) in
Section 4.
6. Useful Tips 6
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 in the bibliography.
Second, we want to switch the order of surname and first name. Open the imsi.bst file. Go
down to find 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 first 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}".
Third, we want to put ‘.’ after the author field. Go down to find 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 field.
Forth, 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}.
Fifth, 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.
Sixth–Assignment?. Put the year before the author names only in books.4 Hint: Go to FUNCTION
{book} and look at format.date "year" output.check. Move this line to a proper place.
Due to my poor knowledge about the language (postfix stack language) used in a .bst file,
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 file system.
6 Useful Tips5
Question: How can I change the bibliography heading title?
Answer: Write in LATEX preamble or anywhere else.
For book-classes: \renewcommand\bibname{your bibliography title}
For article-classes: \renewcommand\refname{your bibliography title}
Question: I have an odd BibTEX problem. I am using the BibTEX styles provided with amslatex,
and 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! Can
anyone out there give me a hint as to how to override this ordering? (The ordering effects references
throughout a large work, so I can’t just edit the bibliography file by hand.)
4 This style is ridiculous. But try it for your practice.
5 The tips in this section are collected from web sites or my personal experiences.
6. Useful Tips 7
Answer: BibTEX sorts the items in the *.bib file 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. I’ve seen a solution for this kind of problems in an old BibTEX 0.99b documentation.
Add the following @PREAMBLE command to your bibliography database file:
@PREAMBLE{"\newcommand{\noopsort}[1]{}"}
Open your .bib file and modify the year field or any other relevant field for proper sorting of the
two bibliography items. For example:
\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
7 Closing Remark
You downloaded this document from my personal web site (http://www.geocities.com/kijoo2000/
bibtex.html). If you find any errors or have suggestions, please contact me.