Articles LaTeX bibliography

LaTeX Bibliography Management: BibTeX, BibLaTeX, and Live Zotero/Mendeley Sync

A practical guide to LaTeX bibliography management: BibTeX vs BibLaTeX, citation commands, styles, and keeping a .bib file synced with Zotero and Mendeley.

inscrive.io · Feb 10, 2025 · 9 min read
LaTeX Bibliography Management: BibTeX, BibLaTeX, and Live Zotero/Mendeley Sync

LaTeX Bibliography Management: A Practical Guide to BibTeX, BibLaTeX, and Live Sync

Citations are the part of a paper that quietly eats your evenings. You add a source, the numbering shifts, a journal wants a different style, and suddenly you are reformatting references by hand at midnight. LaTeX bibliography management exists to stop that. Once your references live in a structured .bib file, formatting becomes the machine’s job, not yours.

This guide covers the two systems most people use (BibTeX and BibLaTeX), the citation commands worth memorising, and how to keep a .bib file in sync with Zotero or Mendeley so you stop pasting entries by hand.

Why manage your bibliography in LaTeX at all

Word processors have citation tools, and they are fine for short documents. The case for LaTeX gets stronger as the document gets longer and more collaborative.

  • Your reference data sits apart from its formatting, so one database serves every paper you write.
  • Switching from APA to IEEE is a one-line change, not a manual rewrite.
  • Numbering and ordering update automatically when you add or remove a citation.
  • A plain-text .bib file diffs cleanly in Git, which matters when several authors touch it.

The catch is the upfront cost. You have to keep the .bib file clean and run the compile steps in the right order. The rest of this article is about making that cheap.

BibTeX: the classic workflow

BibTeX is the original LaTeX bibliography tool, and it still ships with every distribution. It separates your reference data from its presentation, so you maintain one database and point any document at it.

A minimal setup

\documentclass{article}

\begin{document}

Here is a claim worth backing up \cite{einstein1905}.

\bibliographystyle{plain} % or ieeetr, abbrv, unsrt
\bibliography{references}  % the .bib file, without the extension

\end{document}

Note that you do not need \usepackage{cite} for basic citations. The cite package only adds niceties like sorting and compressing numeric ranges, so add it when you actually want those.

Building the .bib database

Each entry has a type (@article, @book, and so on), a citation key, and a set of fields. The key is what you pass to \cite.

@article{einstein1905,
  author  = {Einstein, Albert},
  title   = {On the Electrodynamics of Moving Bodies},
  journal = {Annalen der Physik},
  year    = {1905},
  volume  = {17},
  pages   = {891--921}
}

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

@inproceedings{turing1950,
  author    = {Turing, Alan M.},
  title     = {Computing Machinery and Intelligence},
  booktitle = {Mind},
  year      = {1950},
  volume    = {59},
  pages     = {433--460}
}

One detail people miss: page ranges use a double hyphen (891--921) so LaTeX renders a proper en dash. A single hyphen produces a hyphen, which looks wrong in a reference list.

BibLaTeX: the modern alternative

BibLaTeX is the newer system, and for most new projects it is the better default. It does the formatting inside LaTeX itself and uses Biber as its backend, which gives you proper Unicode handling and far more control over styles.

\documentclass{article}
\usepackage[backend=biber,style=authoryear]{biblatex}
\addbibresource{references.bib}

\begin{document}

\textcite{hawking1988} argued that black holes are not entirely black.

\printbibliography

\end{document}

What you gain over BibTeX:

  • Names with accents and non-Latin scripts work without escaping every character.
  • Entry types for online sources, datasets, software, and more.
  • Filtering and sorting that would be painful or impossible in classic BibTeX.
  • Style changes that are genuinely a one-option edit.

If you want a deeper tour of BibLaTeX styles and customisation, see the BibLaTeX bibliography guide.

Citation commands worth knowing

With natbib (BibTeX-style author-year)

\usepackage{natbib}

\citep{author2023}      % (Author, 2023)
\citet{author2023}      % Author (2023)
\citeauthor{author2023} % Author
\citeyear{author2023}   % 2023

With BibLaTeX

\usepackage[backend=biber,style=authoryear]{biblatex}

\textcite{author2023}   % Author (2023)
\parencite{author2023}  % (Author, 2023)
\citeauthor{author2023} % Author
\citeyear{author2023}   % 2023

The two systems do not mix. Pick one per document. If you inherit a template, check which one it loads before you start adding citations.

Choosing and switching citation styles

Different fields and journals want different formats. With BibTeX you set a \bibliographystyle; with BibLaTeX you pass a style option.

% BibTeX
\bibliographystyle{ieeetr}  % IEEE
\bibliographystyle{plainnat} % author-year via natbib

% BibLaTeX
\usepackage[backend=biber,style=ieee]{biblatex}
\usepackage[backend=biber,style=apa,sorting=nyt]{biblatex}

A note on naming: there is no built-in BibTeX style literally called apa or harvard in a default install. Those come from add-on packages (apacite, harvard, or the apa/harvard BibLaTeX styles). If a style name throws an error, that package is missing, not your syntax.

Advanced BibLaTeX features

Multiple bibliographies in one document

\printbibliography[title=Books,type=book]
\printbibliography[title=Articles,type=article]
\printbibliography[title=Online Sources,type=online]

Categories

\DeclareBibliographyCategory{primary}
\DeclareBibliographyCategory{secondary}

\addtocategory{primary}{einstein1905}
\addtocategory{secondary}{turing1950}

\printbibliography[category=primary,title=Primary Sources]
\printbibliography[category=secondary,title=Secondary Sources]

Filtering by keyword

Tag entries with a keywords field in your .bib, then print a subset.

\printbibliography[keyword=important]

Keeping the .bib file in sync with Zotero and Mendeley

Most researchers do not type .bib entries by hand. They collect references in a manager and export. The usual pain is that the export is a one-time snapshot: add a paper next week, and your .bib is already stale.

inscrive.io handles this differently. It keeps an always-synced .bib connected to your Zotero or Mendeley library, and it offers live citation autocomplete while you type, so \cite{ surfaces your actual references instead of forcing you to tab back to a separate window. Add a source in Zotero, and it shows up in the editor without a manual re-export. That is the difference between a connected library and an import-only one, which is the model many editors still ship.

If you do export by hand, a few habits keep things clean:

  • Use a stable key scheme (Zotero’s Better BibTeX plugin generates consistent keys like einstein1905electrodynamics).
  • Keep DOIs in entries so anyone can resolve the source.
  • Re-export to a fixed filename so your LaTeX \addbibresource line never changes.

For the full setup on either side, see Zotero LaTeX integration and Mendeley LaTeX bibliography.

Collaborating on a shared .bib

When several authors cite into one file, two problems show up: key collisions and merge conflicts. A few practices help.

Use prefixed or descriptive keys so two people do not both invent smith2023. Commit the .bib to version control and review changes like any other file.

git add references.bib
git commit -m "Add methodology references"
git log --follow references.bib

On a real-time editor the merge-conflict problem mostly disappears, because everyone edits the same live file instead of trading copies. inscrive.io does collaborative editing this way, with advanced version history so you can rewind the .bib to any earlier state if an entry gets mangled.

Common problems and fixes

References show up as question marks

The compile sequence is wrong or incomplete. BibTeX needs LaTeX, then BibTeX, then LaTeX twice more. BibLaTeX with Biber needs LaTeX, then Biber, then LaTeX twice. Most editors run this for you; if you compile locally, run the full chain.

A style throws an error

The style package is not installed (see the APA/Harvard note above), or you mixed natbib commands with a BibLaTeX setup. Check which system the preamble loads.

Duplicate entries in the bibliography

Two entries share a key, or the same paper appears under two keys. Give every source exactly one unique key.

@article{smith2023a, % first Smith 2023 paper
}
@article{smith2023b, % second Smith 2023 paper
}

Accented names render wrong

This is BibTeX’s main weakness. Either switch to BibLaTeX with Biber, or escape the characters explicitly.

% BibLaTeX route
\usepackage[backend=biber]{biblatex}

% BibTeX route, in the .bib file
author = {Garc\'{i}a, Mar\'{i}a}

A few habits that pay off

Use consistent, descriptive keys (smith2023machine beats ref17). Fill in complete fields the first time, including DOI and volume, so you never chase metadata before a deadline. Add references as you write rather than in a panic at the end. And verify your formatting against the target journal’s requirements before you submit, because a style that looks right on screen can still violate a publisher’s house rules.

Bibliography management rewards a small amount of discipline early. Get the .bib clean and connected once, and citations stop being the thing that derails your evening.

inscrive.io is a collaborative, EU-hosted LaTeX editor with an always-synced Zotero and Mendeley .bib, live citation autocomplete, and real-time editing. The Free plan is €0 forever (up to 10 active projects, unlimited collaborators, 60-second compiles); Pro is €7/month with 480-second compiles and AI-suggested fixes for compile errors. Your data stays in EU data centres (Hetzner, Germany and Finland), and it is never used to train AI models. Start writing, it’s free.

Further reading

Sign up for our newsletter

Roadmap progress, announcements and exclusive discounts — straight to your inbox.

We care about the protection of your data. Read our privacy policy.