Bibliography Examples: APA, MLA, Chicago and IEEE, with the LaTeX That Produces Them

A bibliography example is only useful if you can see both sides of it: the entry as it appears on the page and the source that generates it. This guide shows the same three sources (Knuth's TeXbook, his article on literate programming and a website) in APA 7, MLA 9, Chicago and IEEE, each with the BibTeX entry that produces it, then three complete LaTeX documents (thebibliography, BibTeX, biblatex), an annotated bibliography example and the errors you will meet.

Every document on this page was compiled with pdfTeX 1.40.28, BibTeX 0.99d and biber 2.21 on TeX Live 2025 (biblatex 3.21, biblatex-apa 9.20, biblatex-mla 2.1a, biblatex-chicago 3.18), and the rendered entries were read back from the PDFs. Where a document needs a .bib file, a filecontents block writes it for you, so each example is a single file that compiles in one run.

Bibliography, Reference List or Works Cited?

A bibliography is a list of the sources behind a piece of writing, alphabetized by author, and it may include works you consulted but never cited. Chicago uses the term and the broader rule.

A reference list contains only the sources you actually cited; every entry matches at least one citation in the text and vice versa. APA and IEEE use this term, and IEEE numbers the entries in the order they are first cited.

Works Cited is the MLA name for the same cited-only list. The three differ in what goes in and in formatting, not in purpose: each entry must let a reader find the exact source.

Bibliography Examples by Style

The entries below are real, public works plus one clearly fictional workshop paper for the IEEE conference example. Each style section shows the rendered entries first, then the .bib source. The source is almost the same across styles; that is the point of keeping sources in a .bib file and letting the style do the formatting.

APA 7 bibliography example

Author surname and initials, year in parentheses, sentence-case title, italics for the book or journal name. The DOI is printed as a link. The website entry carries a retrieval date because urldate is set; APA 7 asks for one only when a page is designed to change and is not archived, so leave urldate out for a stable page. APA 7 also does not list a whole website at all (a mention in the text with the URL is enough), so read the CTAN entry as the shape of an undated web page.

CTAN. (n.d.). Comprehensive TeX archive network. Retrieved October 20, 2026, from https://ctan.org/

Knuth, D. E. (1984a). Literate programming. The Computer Journal, 27(2), 97–111. https://doi.org/10.1093/comjnl/27.2.97

Knuth, D. E. (1984b). The TeXbook. Addison-Wesley.

In-text: (Knuth, 1984b) for the book, (Knuth, 1984a) or Knuth (1984a) for the article, (CTAN, n.d.)

The a and b are added by the style because one author has two works in the same year, in title order as APA 7 requires; a single Knuth entry would print as (Knuth, 1984). The BibTeX source:

@book{knuth1984,
  author    = {Knuth, Donald E.},
  title     = {The {\TeX}book},
  sorttitle = {TeXbook},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  year      = {1984}
}

@article{knuth1984lp,
  author  = {Knuth, Donald E.},
  title   = {Literate Programming},
  journal = {The Computer Journal},
  volume  = {27},
  number  = {2},
  pages   = {97--111},
  year    = {1984},
  doi     = {10.1093/comjnl/27.2.97}
}

@online{ctan,
  author  = {{CTAN}},
  title   = {Comprehensive {\TeX} Archive Network},
  url     = {https://ctan.org/},
  urldate = {2026-10-20}
}

{\TeX} is braced so the APA style, which lowercases titles to sentence case, leaves it alone; the corporate author is double-braced so it is not split into a first and last name. sorttitle is there because biber drops the \TeX macro when it builds the sort key, leaving "book", which would put The TeXbook ahead of "Literate programming" and swap the letters. @online with urldate is a biblatex entry type; classic BibTeX styles want @misc with howpublished = {\url{...}} and the access date in note.

MLA 9 bibliography example (Works Cited)

Full first names, title-case titles, the journal's volume and issue spelled out as vol. and no., the year after the issue, pages with pp., and a DOI or URL at the end. A second work by the same author replaces the name with three em dashes.

CTAN. "Comprehensive TeX Archive Network," ctan.org/. Accessed 20 Oct. 2026.

Knuth, Donald E. "Literate Programming." The Computer Journal, vol. 27, no. 2, 1984, pp. 97–111. https://doi.org/10.1093/comjnl/27.2.97.

———. The TeXbook. Addison-Wesley, 1984.

In-text: (Knuth, The TeXbook 3), ("Literate Programming" 98), (CTAN)

Three details above are biblatex-mla's rather than the handbook's. It closes the page range with a period before the DOI, where MLA 9 uses a comma. It puts the title of a whole website in quotation marks, where MLA 9 italicizes it; entering the site as @book gives the italic form. And it drops the author from the second in-text citation because the previous citation was the same author; the full form is (Knuth, "Literate Programming" 98).

The source is the same three entries as APA, untouched. The only change in the LaTeX is the style line, \usepackage[style=mla]{biblatex}, which also adds the short title to in-text citations when an author has several works. Author names are typed Last, First:

@book{knuth1984,
  author    = {Knuth, Donald E.},
  title     = {The {\TeX}book},
  sorttitle = {TeXbook},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  year      = {1984}
}

@article{knuth1984lp,
  author  = {Knuth, Donald E.},
  title   = {Literate Programming},
  journal = {The Computer Journal},
  volume  = {27},
  number  = {2},
  pages   = {97--111},
  year    = {1984},
  doi     = {10.1093/comjnl/27.2.97}
}

@online{ctan,
  author  = {{CTAN}},
  title   = {Comprehensive {\TeX} Archive Network},
  url     = {https://ctan.org/},
  urldate = {2026-10-20}
}

MLA book citations in every variation (editors, translators, editions, e-books) are in MLA Book Citation, and the parenthetical rules in MLA In-Text Citation.

Chicago notes-bibliography example

Chicago's humanities style has two parts: a footnote at the point of citation and a bibliography entry at the end. The note gives the first name first and wraps the publication details in parentheses; the bibliography entry inverts the name and uses periods. Place of publication is kept. The three-em dash for a repeated author is a 17th-edition rule, which is what biblatex-chicago implements; the 18th edition (2024) repeats the name instead.

Knuth, Donald E. "Literate Programming." The Computer Journal 27, no. 2 (1984): 97–111. https://doi.org/10.1093/comjnl/27.2.97.

———. The TeXbook. Reading, MA: Addison-Wesley, 1984.

Lamport, Leslie. LaTeX: A Document Preparation System. 2nd ed. Reading, MA: Addison-Wesley, 1994.

Footnote 1: Donald E. Knuth, The TeXbook (Reading, MA: Addison-Wesley, 1984), 42.

Footnote 3: Donald E. Knuth, "Literate Programming," The Computer Journal 27, no. 2 (1984): 98, https://doi.org/10.1093/comjnl/27.2.97.

The source keeps address (biblatex's own name is location), which Chicago prints and APA 7 drops, and adds a numeric edition, which the style prints as "2nd ed.":

@book{knuth1984,
  author    = {Knuth, Donald E.},
  title     = {The {\TeX}book},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  year      = {1984}
}

@book{lamport1994,
  author    = {Lamport, Leslie},
  title     = {{\LaTeX}: A Document Preparation System},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  edition   = {2},
  year      = {1994}
}

@article{knuth1984lp,
  author  = {Knuth, Donald E.},
  title   = {Literate Programming},
  journal = {The Computer Journal},
  volume  = {27},
  number  = {2},
  pages   = {97--111},
  year    = {1984},
  doi     = {10.1093/comjnl/27.2.97}
}

IEEE bibliography example

Numbered in order of first citation, initials before the surname, article titles in sentence case inside quotation marks, the journal in italics, vol., no., pp., then the year. Conference papers start with "in" and the proceedings title.

[1] D. E. Knuth, The TeXbook. Reading, MA: Addison-Wesley, 1984.

[2] D. E. Knuth, "Literate programming," The Computer Journal, vol. 27, no. 2, pp. 97–111, 1984. doi: 10.1093/comjnl/27.2.97

[3] A. Okafor and M. Vance, "Streaming compilation of large documents," in Proceedings of the 12th Workshop on Document Tools, DocTools Press, 2023, pp. 45–52.

In-text: [1], [2], [1], [3]

The conference paper is an @inproceedings entry; booktitle is the proceedings title and publisher is optional:

@book{knuth1984,
  author    = {Knuth, Donald E.},
  title     = {The {\TeX}book},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  year      = {1984}
}

@article{knuth1984lp,
  author  = {Knuth, Donald E.},
  title   = {Literate Programming},
  journal = {The Computer Journal},
  volume  = {27},
  number  = {2},
  pages   = {97--111},
  year    = {1984},
  doi     = {10.1093/comjnl/27.2.97}
}

@inproceedings{okafor2023,
  author    = {Okafor, Adaeze and Vance, Miriam},
  title     = {Streaming Compilation of Large Documents},
  booktitle = {Proceedings of the 12th Workshop on Document Tools},
  publisher = {DocTools Press},
  year      = {2023},
  pages     = {45--52}
}

IEEE's own templates ship IEEEtran.bst for classic BibTeX; it prints the book exactly as above, drops the DOI, and replaces a repeated author with a dash (it is in the BibTeX table below). For the medical numbered style, which looks similar but uses superscripts and no brackets, see AMA Citation Format.

A Bibliography in LaTeX, Three Ways

The three methods differ in where the formatting lives. With thebibliography you type the formatted entries yourself. With BibTeX a .bst style file formats entries from a .bib database. With biblatex a LaTeX package does the formatting and biber does the sorting. The maintained APA 7, MLA 9 and Chicago styles are biblatex packages; IEEE ships IEEEtran.bst for BibTeX and has a biblatex counterpart.

thebibliography: no external file

The argument is the widest label you expect (9 for up to nine entries, 99 for up to 99); each \bibitem{key} becomes a numbered entry that \cite{key} refers to. \newblock is an optional separator that the openbib class option turns into a line break:

\documentclass{article}
\begin{document}

Knuth designed \TeX{} for typesetting mathematics \cite{knuth1984} and
Lamport built \LaTeX{} on top of it \cite{lamport1994}; literate
programming is introduced in \cite{knuth1984lp}.

\begin{thebibliography}{9}

\bibitem{knuth1984}
Donald E. Knuth.
\newblock \emph{The \TeX book}.
\newblock Addison-Wesley, Reading, MA, 1984.

\bibitem{lamport1994}
Leslie Lamport.
\newblock \emph{\LaTeX: A Document Preparation System}.
\newblock Addison-Wesley, Reading, MA, 2nd edition, 1994.

\bibitem{knuth1984lp}
Donald E. Knuth.
\newblock Literate programming.
\newblock \emph{The Computer Journal}, 27(2):97--111, 1984.

\end{thebibliography}

\end{document}

Two pdflatex runs are needed: the first writes the labels to the .aux file, the second reads them, so citations show as [?] after a single run. Entries print in the order you typed them, so alphabetize by hand. The heading is "References" in article and "Bibliography" in book and report; change it with \renewcommand{\refname}{Works Cited} (\bibname in the book classes).

BibTeX: a .bib file plus a .bst style

Put the sources in refs.bib, pick a style with \bibliographystyle and print the list with \bibliography. The compile sequence is pdflatex, bibtex, pdflatex, pdflatex; latexmk runs it for you. The filecontents block writes refs.bib for you, so the example is one file; in a real project delete the block and keep refs.bib next to the document.

\documentclass{article}
\begin{filecontents}[overwrite]{refs.bib}
@book{knuth1984,
  author    = {Donald E. Knuth},
  title     = {The {\TeX}book},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  year      = {1984}
}

@book{lamport1994,
  author    = {Leslie Lamport},
  title     = {{\LaTeX}: A Document Preparation System},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  edition   = {2nd},
  year      = {1994}
}

@article{knuth1984lp,
  author  = {Donald E. Knuth},
  title   = {Literate Programming},
  journal = {The Computer Journal},
  volume  = {27},
  number  = {2},
  pages   = {97--111},
  year    = {1984},
  doi     = {10.1093/comjnl/27.2.97}
}
\end{filecontents}

\begin{document}

Knuth designed \TeX{} for typesetting mathematics \cite{knuth1984} and
Lamport built \LaTeX{} on top of it \cite{lamport1994}. Literate programming
came out of the same project \cite{knuth1984lp}.

\bibliographystyle{apalike}
\bibliography{refs}

\end{document}

edition = {2nd} is spelled out because the .bst styles print the field as typed ("2nd edition"), where biblatex wants the number. Only entries you cite are printed; add \nocite{*} before \bibliography to print the whole file. Swapping the style line changes every entry at once. The Knuth book under each of the standard styles, as compiled:

Style lineCitationEntry as printed
\bibliographystyle{plain}[1], alphabetical[1] Donald E. Knuth. The TeXbook. Addison-Wesley, Reading, MA, 1984.
\bibliographystyle{unsrt}[1], in citation orderSame entry as plain, numbered in the order first cited
\bibliographystyle{ieeetr}[1], in citation order[1] D. E. Knuth, The TeXbook. Reading, MA: Addison-Wesley, 1984.
\bibliographystyle{IEEEtran}[1], in citation orderSame as ieeetr for this entry; IEEE's own style, which prints a repeated author as a dash and omits the DOI
\bibliographystyle{apalike}[Knuth, 1984a][Knuth, 1984a] Knuth, D. E. (1984a). The TeXbook. Addison-Wesley, Reading, MA.
\bibliographystyle{plainnat} + natbib(Knuth, 1984a) or Knuth (1984a)Donald E. Knuth. The TeXbook. Addison-Wesley, Reading, MA, 1984a.

apalike is APA-like, not APA 7: it keeps the place of publication, brackets the citation and, since it ignores sorttitle, still labels The TeXbook 1984a. For author-year citations in parentheses load natbib, which adds \citep and \citet:

\usepackage[round]{natbib}   % preamble
...
\citet{knuth1984} designed \TeX{}, and Lamport built \LaTeX{} on top of it \citep{lamport1994}.
...
\bibliographystyle{plainnat}
\bibliography{refs}

biblatex: style=apa with biber

biblatex moves the setup into the preamble: the style is a package option, the .bib file is registered with \addbibresource, and \printbibliography prints the list. biblatex-apa needs the biber backend, not bibtex, so compile with latexmk -pdf or an editor that runs biber; it also wants babel and csquotes for language-specific punctuation.

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}   % APA 7; needs biber
\begin{filecontents}[overwrite]{refs.bib}
@book{knuth1984,
  author    = {Knuth, Donald E.},
  title     = {The {\TeX}book},
  sorttitle = {TeXbook},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  year      = {1984}
}

@book{lamport1994,
  author    = {Lamport, Leslie},
  title     = {{\LaTeX}: A Document Preparation System},
  publisher = {Addison-Wesley},
  address   = {Reading, MA},
  edition   = {2},
  year      = {1994}
}

@article{knuth1984lp,
  author  = {Knuth, Donald E.},
  title   = {Literate Programming},
  journal = {The Computer Journal},
  volume  = {27},
  number  = {2},
  pages   = {97--111},
  year    = {1984},
  doi     = {10.1093/comjnl/27.2.97}
}

@online{ctan,
  author  = {{CTAN}},
  title   = {Comprehensive {\TeX} Archive Network},
  url     = {https://ctan.org/},
  urldate = {2026-10-20}
}
\end{filecontents}
\addbibresource{refs.bib}

\begin{document}

Knuth designed \TeX{} for typesetting mathematics \parencite{knuth1984}, and
\textcite{lamport1994} built \LaTeX{} on top of it. Literate programming came
out of the same project \parencite{knuth1984lp}; every package is archived online
\parencite{ctan}.

\printbibliography

\end{document}

This document produced the APA entries shown at the top of the page, plus a fourth for Lamport that shows how the style handles an edition: Lamport, L. (1994). LaTeX: A document preparation system (2nd ed.). Addison-Wesley. The same .bib file gives the other styles by changing one line; each of these was compiled with the same body:

StylePreamble lineCite withPackage
APA 7\usepackage[style=apa]{biblatex}\parencite, \textcitebiblatex-apa
MLA 9\usepackage[style=mla]{biblatex}\autocite[page]{key}biblatex-mla
Chicago notes\usepackage[notes]{biblatex-chicago}\autocite[page]{key} (becomes a footnote)biblatex-chicago
IEEE\usepackage[style=ieee]{biblatex}\citebiblatex-ieee

All four packages are in a full TeX Live; on a minimal installation, tlmgr install biblatex-apa biblatex-mla biblatex-chicago biblatex-ieee adds them.

The .bib entry types

The entry type decides which fields a style expects. The required fields are the ones the classic BibTeX styles warn about when missing. biblatex's own names are journaltitle, location and date; it reads journal, address and year as aliases for them.

Entry typeUse forRequired fieldsCommon optional fields
@articleJournal or magazine articleauthor, title, journal, yearvolume, number, pages, doi
@bookBook with a publisherauthor or editor, title, publisher, yearaddress, edition, volume, isbn
@inproceedingsPaper in conference proceedingsauthor, title, booktitle, yearpages, publisher, address, doi
@incollectionChapter in an edited bookauthor, title, booktitle, publisher, yeareditor, pages, chapter
@phdthesisDoctoral thesis (@mastersthesis for a master's)author, title, school, yearaddress, month, url
@miscAnything else: web pages, datasets, softwarenoneauthor, title, howpublished, year, note

Separate authors with and, never commas; write page ranges with a double hyphen, 97--111; and brace anything whose capitalization must survive, {DNA}, {\LaTeX}. The classic styles (plain, unsrt, ieeetr, apalike) ignore doi, url and isbn; plainnat and biblatex print them. A deeper treatment of the file, with the warnings each mistake produces, is in BibTeX Errors and How to Fix Them; exporting a .bib from a reference manager is in the Zotero citation guide.

Annotated Bibliography Example

An annotated bibliography adds a short paragraph under each entry: a summary of the source, an assessment, and how it serves your project. The entry follows whatever style the course uses; the annotation is plain prose, usually 100 to 150 words. One APA entry with a three-sentence annotation:

Knuth, D. E. (1984). The TeXbook. Addison-Wesley.

Knuth's manual is the primary source for every rule TeX follows when it breaks lines and pages. It is written for two audiences at once: the first chapters teach plain TeX to a new user, and the "dangerous bend" sections give the algorithms a package author needs. This paper draws on chapters 14 and 15 for the line-breaking parameters discussed in Section 3.

With thebibliography, the annotation is a paragraph after the entry; the blank line starts it and the \itemsep keeps entries apart:

\documentclass{article}
\begin{document}

\begin{thebibliography}{9}
\setlength{\itemsep}{1em}

\bibitem{knuth1984}
Knuth, D. E. (1984). \emph{The \TeX book}. Addison-Wesley.

Knuth's manual is the primary source for every rule \TeX{} follows when it
breaks lines and pages. It is written for two audiences at once: the first
chapters teach plain \TeX{} to a new user, and the ``dangerous bend''
sections give the algorithms a package author needs. This paper draws on
chapters 14 and 15 for the line-breaking parameters discussed in Section 3.

\end{thebibliography}

\end{document}

With biblatex, put the text in the annotation field of the entry. biblatex-apa prints that field by itself, directly under the entry, so this document needs nothing beyond the field:

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\begin{filecontents}[overwrite]{refs.bib}
@book{knuth1984,
  author     = {Knuth, Donald E.},
  title      = {The {\TeX}book},
  publisher  = {Addison-Wesley},
  year       = {1984},
  annotation = {Knuth's manual is the primary source for every rule \TeX{}
    follows when it breaks lines and pages. It is written for two audiences
    at once: the first chapters teach plain \TeX{} to a new user, and the
    ``dangerous bend'' sections give the algorithms a package author needs.
    This paper draws on chapters 14 and 15 for the line-breaking parameters
    discussed in Section 3.}
}
\end{filecontents}
\addbibresource{refs.bib}

\begin{document}

\nocite{*}
\printbibliography[title={Annotated Bibliography}]

\end{document}

The standard biblatex styles (authoryear, numeric, and the MLA and IEEE packages) ignore annotation; biblatex-chicago prints it with the annotation=true option. For the others, two preamble lines print it as an indented paragraph after each entry; compiled with style=authoryear:

\DeclareFieldFormat{annotation}{\par\vspace{0.5\baselineskip}\noindent #1}
\renewbibmacro*{finentry}{\finentry\printfield{annotation}}

A full document with the APA heading, double spacing and hanging indents already set up is the annotated bibliography template; a plain reference list is the bibliography template.

Common Bibliography Errors

Each message was reproduced on TeX Live 2025. BibTeX and biber write to the .blg file; LaTeX's own warnings are in the .log.

What you seeCauseFix
I found no \citation commands---while reading file main.aux (BibTeX) and LaTeX Warning: Empty `thebibliography' environmentThe document has \bibliography but no \cite, so nothing was requested, or pdflatex has not run yet and the .aux is empty.Cite something, or add \nocite{*} to print every entry; run pdflatex before bibtex.
Warning--empty journal in knuth1984lp (BibTeX), entry printed without the journalA required field is missing from an @article entry. The same message names publisher, year or booktitle for the other types.Add the field from the entry-type table above. BibTeX still produces output, so the warning is easy to miss.
LaTeX Warning: Citation `knuth84' on page 1 undefined, printed as [?], with Warning--I didn't find a database entry for "knuth84" in the .blgThe key in \cite matches no entry in the .bib file, or the bibliography pass has not run yet.Fix the key (keys are case-sensitive), then run pdflatex, bibtex or biber, pdflatex, pdflatex.
! Package biblatex Error: '\bibliographystyle' invalid for 'biblatex'.BibTeX commands in a biblatex document.Delete \bibliographystyle and use the package option: \usepackage[style=apa]{biblatex}.
! LaTeX Error: Can be used only in preamble. at \bibliography{refs}With biblatex loaded, \bibliography is a preamble-only alias of \addbibresource.Put \addbibresource{refs.bib} in the preamble and \printbibliography where the list goes.
Package biblatex Warning: Please (re)run Biber on file: main, empty bibliographybibtex was run instead of biber, or no backend ran at all.Run biber main (no extension) and pdflatex twice, or use latexmk -pdf, which picks the backend from the document.
! Undefined control sequence. at \autociteChicago loaded as style=chicago-notes rather than through the wrapper package.\usepackage[notes]{biblatex-chicago}, or cite with \footcite.

Frequently Asked Questions

What does a bibliography look like?

An alphabetical list of sources at the end of a document, one entry per source, giving author, title, publisher or journal and year in the order the style prescribes. In APA 7 a book is "Knuth, D. E. (1984). The TeXbook. Addison-Wesley." and in MLA 9 "Knuth, Donald E. The TeXbook. Addison-Wesley, 1984." Entries hang indented, except in numbered styles such as IEEE, which label them [1], [2] in citation order.

What is the difference between a bibliography and a reference list?

A reference list (APA, IEEE) contains only the sources you cited; a bibliography (Chicago) may also include sources you read but did not cite. MLA calls its cited-only list Works Cited. In LaTeX the difference is a heading and a \nocite: \printbibliography[title={Bibliography}] with \nocite{*} lists everything in the .bib file.

How do I write a bibliography in LaTeX?

For a handful of sources, type them in a thebibliography environment with one \bibitem per source and cite them with \cite{key}. For more, put them in a .bib file and run BibTeX (\bibliographystyle{plain} and \bibliography{refs} in the body) or biblatex (\usepackage[style=apa]{biblatex} and \addbibresource{refs.bib} in the preamble, \printbibliography in the body, compiled with biber). latexmk runs the extra passes for you.

What is a BibTeX example?

A .bib file holds entries such as @book{knuth1984, author = {Donald E. Knuth}, title = {The {\TeX}book}, publisher = {Addison-Wesley}, year = {1984}}. The word after @ is the entry type, the first word inside the braces is the citation key for \cite, and the rest are field = {value} pairs separated by commas. A complete document, with the .bib file written by a filecontents block, is in the BibTeX section of this page.

Why does my bibliography show [?] or a question mark instead of a citation?

The key in \cite matches no entry, or the bibliography has not been built yet. The log says LaTeX Warning: Citation `key' undefined and, for BibTeX, the .blg says Warning--I didn't find a database entry for "key". Fix the key, then run pdflatex, bibtex (or biber), pdflatex, pdflatex; latexmk does the sequence for you.

Should I use BibTeX or biblatex?

Use biblatex with biber when the document must follow a named style exactly: biblatex-apa, biblatex-mla, biblatex-chicago and biblatex-ieee follow the handbooks (APA 7, MLA 9, Chicago 17) and give you \textcite, \parencite and \footcite. Use classic BibTeX when a journal or thesis template hands you a .bst file. The .bib file is the same for both, so switching later costs almost nothing.

Next Steps

The bibliography is one half of citing; these guides cover the rest:

Free LaTeX Tools

Generate the bibliography instead of typing it

Octree is an AI-powered LaTeX editor with bibtex, biber and latexmk already set up: paste any example above, add your own sources to the .bib file, and the formatted list updates on every compile.

Try Octree Free →