Using BibTeX with letter class
Taking the definition from the article
class, I get good results with
\begin{filecontents}{letter.bib}
@article{First,
author = "Other, A. N.",
title = "Some things {I} did",
journal = "J. Irreproducible Results",
year = "2011"
}
@article{Second,
author = "Aaa, S{\o}mebloke",
title = "Tigers",
journal = "Ann. Improbable Res.",
year = "2011"
}
\end{filecontents}
\documentclass{letter}
\makeatletter
\newenvironment{thebibliography}[1]
{\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\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}
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\makeatother
\begin{document}
\begin{letter}{Some person}
\opening{Hello}
Some text \cite{First}, more text \cite{Second}.
\bibliographystyle{unsrt}
\bibliography{letter}
\end{letter}
\end{document}
I've used the unsrt
style here, as plain
would put the references in alphabetical rather than citation order. I've also modified the definition of thebiliography
a little, removing the section-related stuff as this does not really seem relevant to a letter. (I also took out the code related to the openbib
option for the article
class, again as it does not seem relevant.)
The second edit to the question asks about natbib
. For me, this works if I load natbib
after defining thebiliography
and if I make \bibsection
'safe':
\begin{filecontents}{letter.bib}
@article{First,
author = "Other, A. N.",
title = "Some things {I} did",
journal = "J. Irreproducible Results",
year = "2011"
}
@article{Second,
author = "Aaa, S{\o}mebloke",
title = "Tigers",
journal = "Ann. Improbable Res.",
year = "2011"
}
\end{filecontents}
\documentclass{letter}
\makeatletter
\newenvironment{thebibliography}[1]
{\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\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}
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\makeatother
\usepackage[numbers]{natbib}
\let\bibsection\relax
\begin{document}
\begin{letter}{Some person}
\opening{Hello}
Some text \cite{First}, more text \cite{Second}.
\bibliographystyle{unsrtnat}
\bibliography{letter}
\end{letter}
\end{document}
I had the same problem and I think that I found a more elegant and more extensive solution.
The developers of komascript.de provide a class scrartcl
that is basically equivalent to the standard article class but allows the integration of letters. The beauty is, you cannot only print a bibliography but also use sections and other tools that you might have missed from the article class. A working example:
\begin{filecontents}{letter.bib}
@article{First,
author = "Other, A. N.",
title = "Some things {I} did",
journal = "J. Irreproducible Results",
year = "2011"
}
@article{Second,
author = "Aaa, S{\o}mebloke",
title = "Tigers",
journal = "Ann. Improbable Res.",
year = "2011"
}
\end{filecontents}
\documentclass{scrartcl}
\usepackage{scrletter}
\usepackage[numbers]{natbib}
\usepackage{lipsum}
\begin{document}
\setkomavar{fromname}{Name of Sender}
\setkomavar{fromaddress}{Address of Sender}
\begin{letter}{Name of Recipient\\Address of Recipient}
\opening{Dear Recipient,}
\section{Interesting Stuff}
The first~\cite{First} citation.
\lipsum%
\section{Another Citation}
And the second~\cite{Second} citation.
\closing{Yours sincerely,}
\bibliographystyle{unsrtnat}
\bibliography{letter}
\end{letter}
\end{document}