How to manage references for a research paper

Keep every reference for a project in one .bib file, give each entry a stable key you choose yourself (vaswani2017attention rather than a database id), and import the metadata from arXiv, Crossref, PubMed, or your reference manager instead of typing it. Then cite by key and let the toolchain build the list.

One file, stable keys

A single .bib per project — not per chapter — avoids duplicate entries that drift apart. Choose keys you can recognise later: author, year, and one word from the title is enough, and it stays readable in the middle of a paragraph of source.

@inproceedings{vaswani2017attention,
  title     = {Attention Is All You Need},
  author    = {Vaswani, Ashish and others},
  booktitle = {NeurIPS},
  year      = {2017},
  doi       = {10.48550/arXiv.1706.03762},
}

Record the doi whenever there is one. It is the only field that reliably identifies the work, and it lets you regenerate the rest if the entry turns out wrong.

Where the metadata comes from

Type as little as possible. arXiv, Crossref (by DOI), PubMed, and OpenAlex all export BibTeX, and publisher pages usually do too. A reference manager such as Zotero or JabRef sits in front of these and exports a .bib that biblatex and classic BibTeX both read unchanged.

Then cite it

The mechanics of citing and printing the list differ by markup — see citations and bibliographies in LaTeX or in Typst.

In KL studioreferences are part of the editor rather than a separate app. Press Cmd-K and type +ax, +cr, +pm, or +oa to search arXiv, Crossref, PubMed, or OpenAlex and import a paper straight into your library; cite it with \cite{slug} with no .bib file to maintain. An existing Zotero library can be imported so your references come with you.

Common questions

What is the best way to manage references for a thesis?
Keep one .bib file for the whole project rather than one per chapter, use stable citation keys you choose yourself, and import metadata from a database rather than typing it, so the fields are consistent and correct.
How should I name citation keys?
Use a scheme you can reproduce from the paper alone, such as firstauthor-year-keyword (vaswani2017attention). Avoid keys generated from a database id, since they are impossible to recognise when you read your own source.
Can I use Zotero with LaTeX?
Yes. Zotero exports a .bib file that both BibTeX and biblatex read directly, and add-ons keep that export in sync with your library. KL studio can also import a Zotero library so the references come with you.
How do I get a BibTeX entry for a paper?
Most databases give you one: arXiv, Crossref by DOI, PubMed, OpenAlex, and publisher pages all export BibTeX. Prefer the publisher or Crossref record over a search-engine one, since the fields are more complete.