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}

Tags:

Bibtex

Letters