Zotero for Primary Sources: Where Transcribed Text Fits in a Citation-First Workflow

Zotero for primary sources as a citation-first workflow: how to map archival fields, where checked transcriptions should live, and how to keep them anchored to leaves.

Leo Team

August 10, 2026

Zotero for Primary Sources: Where Transcribed Text Fits in a Citation-First Workflow
Contents

Using Zotero for primary sources works well as a citation layer and badly as a text layer: it will hold your archival record stably, but a photograph of a manuscript leaf is not searchable text. This article sets out a citation-first workflow — how to fill the archival fields, where a checked transcription should live, and how to keep it anchored to the leaf it came from.

Create a Manuscript or Letter item, put the repository in Archive and a consistent collection/series/box/folder/shelfmark string in Loc. in Archive, and attach the photographs. But attaching a JPEG does not make the writing on it searchable: Zotero's full-text index covers embedded text in PDF, EPUB, HTML, and plain-text files, so a photograph produces no passage hits until transcription creates the text. The working answer is a citation-first hybrid — Zotero holds the record and the image, and a checked transcription lives beside it as a child note or a .txt/.html attachment with explicit `[fol. 12r]` markers at every leaf break.

That is the short version. What follows is the reasoning, the field-by-field detail, and the decisions that determine whether your library is still usable three years into a project.

What Zotero's primary-source model actually gives you

Zotero is not only a bibliography maker. Its item-type set includes Manuscript for unpublished and archival documents and Letter for correspondence between people or organizations — a genuine primary-source affordance, and the right starting point for a folder of reading-room photographs.

Harvard Library's guide to using Zotero for archival research is the most practical statement of the field mapping. It recommends a separate Zotero record for each manuscript item you cite, plus one record for the collection as a whole: item records generate footnotes, the collection record generates the bibliography entry. The fields that carry the archival weight are:

  • Archive — the full name of the repository.
  • Loc. in Archive — the important one. A free-text string that has to hold the collection title, series, box, folder, and call number, because Zotero has no separately typed fields for any of them.
  • Call Number — usable, but Harvard's advice is to repeat the call number inside Loc. in Archive as well, since that is the field citation styles reliably surface.
  • Date, Pages, Rights, Extra — Pages is documented as a publication-page or locator field rather than a folio field; Extra takes overflow.

Compare that to what an archival citation is expected to contain. Chicago-style archival guidance — CSUDH's is a clear example — asks for title or description of the item, date, collection number or identifier, box, folder, collection name, and repository; the University of Dayton's guide sets out the same components with the leaf or page actually cited. Zotero can carry all of it, but only if you flatten most of it into one string.

The practical consequence: decide your Loc. in Archive syntax once, write it down, and never vary it. Something like `Collection Name, Series 3, Box 14, Folder 2, MS 4021` — same order, same separators, every record. It is not a structured hierarchy and it will not sort or filter as one, but a consistent string is searchable and predictable, and an inconsistent one is neither. This is the same discipline that governs description at every other stage of a research workflow from archive photo to citable source: the record is only as good as the convention you kept to.

Zotero's Everything search matches fields, tags, note text, and indexed attachment text. Zotero's searching documentation is explicit about the last part: only PDF, EPUB, HTML, and plain-text content can be indexed, and indexing runs in the background with a default ceiling of 500,000 characters or 100 pages per file.

A photograph of a manuscript leaf is pixels. There is no character layer to index, so the passage you half-remember — the phrase about the debt, the name of the ship's master — will never surface from the image itself. Zotero's own troubleshooting advice underlines the mechanism: if an attachment isn't appearing in Everything search, check that it actually has searchable text you can copy out.

Two related corrections, since both come up constantly. Zotero 7's main change is an improved built-in reader — ink, underline, and text annotations, with annotations copied into notes carrying a link back to the PDF page. That helps with text-bearing PDFs. It is not OCR for a folder of JPEGs, and current documentation does not establish core OCR for image-only attachments. And tags and Extra are not transcription. Tags are good item-level labels — a hand, a scribe, a status like `checked-against-image` — but they hold no passage text and no folio anchor.

So the text has to come from somewhere. That somewhere is a transcription step you run outside Zotero, then deposit inside it.

Where the transcription should live

Four containers are workable, with different trade-offs.

Child note

Attached to the parent item, searchable through general Zotero search, autosaving, and — importantly — synced with item metadata without counting against your file-storage quota. Best for single documents and moderate lengths, and the easiest thing to quote from while writing. Note that a separate character cap for notes is not documented; the 500,000-character figure applies to indexed files.

A .txt or .html child attachment

Squarely inside the documented full-text index, and the better container for long transcriptions or a whole document run. It keeps whatever structure and markers you put in the file, and it survives being read by anything else on your machine.

A PDF with a genuine embedded text layer

Works if your transcription tool produces one, and gives you image and text in a single attachment. Verify the text layer by trying to copy text out of it; a scanned PDF with no layer is just a photograph in a different wrapper.

A structured master, kept beside rather than inside

TEI XML, PAGE, or ALTO preserve page structure, regions, and coordinates. Zotero can store the file, but its indexed-format list doesn't include XML — so treat the structured file as your master and the plain-text or HTML version as a deliberate derivative made for search. Flattening loses machine-readable layout; that is a known cost, not an equivalence.

One caution before you build a project around any of these: the behaviour of RIS, BibTeX, and CSL-JSON export for child-note bodies, note tags, and arbitrary attachments isn't something to assume. Don't treat a citation export as a backup of your transcriptions.

Anchoring to the leaf, not just the item

A transcription without folio anchoring is a citation problem waiting to happen. You find the phrase; you cannot say which leaf it sits on; you go back to the images and count.

The lightweight solution is a header and inline markers. Open the note or file with the shelfmark and a one-line statement of transcription policy, then mark every leaf break:

```

Chancery bill, Smith v. Carew, 1613

TNA C 2/JasI/S12/34

Diplomatic transcription; abbreviations expanded in [square brackets]

[fol. 12r]

To the right honorable Thomas Lord Ellesmere ...

[fol. 12v]

...

```

`[fol. 12r]` and `[fol. 12v]` are easy to type, easy to search, and easy to quote. If your images are numbered rather than foliated, `[image_012]` is honest and equally serviceable.

The structured solution is TEI. The Guidelines define `<pb>` as a page beginning, with `n` carrying the number or signature and `facs` associating that page beginning with a facsimile image — `<pb n="12r" facs="page12r.png"/>`. That relationship between transcribed text and image is what the TEI chapter on representing primary sources is built to preserve. Zotero does not become TEI-aware; pasted TEI in a note is just note text. But if you are heading toward a digital edition, encode once and derive the plain-text version for Zotero rather than transcribing twice.

State your policy in the header either way. Diplomatic, expanded, or normalized — say which. The National Archives' transcription guidance puts the fidelity standard plainly: type words exactly as written, including capitalization, abbreviations, names, dates, and misspellings. That matters most where the letterforms are genuinely ambiguous. As the Society of Genealogists' secretary-hand guide notes, I and J were not separate letters until the eighteenth century, and u and v are often indistinguishable in the hand — so a transcription that silently prints just where the page has iust has made an editorial decision without telling anyone. Our guide to transcription conventions and marking uncertainty works through the rest of the repertoire.

Producing the text without losing the page

The transcription itself is the labour, and it is where most of this workflow stalls. Manual keying is slow, and it is slowest exactly where the material matters most — dense secretary hand, notarial French, German Kurrent, Dutch registers. The image-to-text problem is identical across all of them; only the paleography changes.

This is the stage where a purpose-built handwritten text recognition model earns its place, and it is the one stage Zotero does not attempt. Leo reads Latin-script material — the alphabet, not the language, so English wills, French notarial minutes, German parish books, Dutch and Spanish and Italian records are all in scope; Greek, Cyrillic, Hebrew, Arabic, and East Asian scripts are not. Its model, ATR-1, runs zero-shot: there is no ground-truth keying or model-training step before you get a first reading, which is the practical difference from the trained-model route described in our comparison of zero-shot and trained approaches.

Two things matter specifically for a citation-first Zotero workflow. First, source integrity: ATR-1 is trained to transcribe what is on the page rather than to smooth it — strikethroughs, interlinear additions, marginalia, expansions, and archaic spelling survive rather than being quietly modernized. That is the property a quotable transcription depends on, because the alternative failure mode is fluent, plausible text that reads correctly and is wrong. A general chatbot will hand you a paragraph of confident early-modern English that no scribe ever wrote; a specialist model's errors tend to be wrong characters and words you can catch against the image sitting beside the text. We work through that distinction in detail in Fluent but Wrong.

Second, export. Leo exports text to PDF, Word, HTML, and TEI XML, which maps cleanly onto the containers above. Take the HTML or the text export as your Zotero-indexed derivative; keep the TEI as the structured master if page structure and image relationships matter to your edition. Leo also functions as a workspace in its own right — folders, per-document metadata, global fuzzy search across transcriptions, the image displayed beside the transcription for checking — so for many projects the transcription work happens there and only the finished, verified text lands in Zotero next to the citation record. Correct the reading against the image before you deposit it. Corrections made in the app also feed back into training, so the model's readings improve over successive releases.

Photographs, files, and the sync trap

Two operational details cause more lost work than any transcription decision.

Zotero's data sync covers items, notes, links, and tags, free and unlimited — but it does not sync attachment files. Stored files need Zotero Storage or WebDAV; Zotero Storage starts at 300 MB free, with 2 GB at $20/year and 6 GB at $60/year. A few thousand archival photographs will exceed the free tier immediately. Linked files avoid the quota but require a separately synchronized folder that you maintain — and Zotero's own guidance warns against putting the Zotero data directory itself in a cloud folder.

This is one reason the photograph-management layer often sits outside Zotero. Tropy is a free research-photo manager built for exactly this: turning reading-room photographs into described items, with an official export path to Zotero. Zotero and Tropy come from the same nonprofit family, but what is verified is export, not live two-way synchronization — and Tropy's export documentation notes that JSON-LD export carries metadata and notes, not the photographs themselves. Plan the hand-off deliberately. If you already keep your images in Tropy, our note on adding a transcription step to a Tropy-organized collection covers where the text comes from.

The shape of the finished workflow

Put together, the defensible current method for Zotero for primary sources looks like this:

  1. Parent item — Manuscript or Letter, one per cited document, plus a collection-level record for the bibliography.
  2. Archival fields — repository in Archive; a fixed-syntax collection/series/box/folder/shelfmark string in Loc. in Archive; call number repeated; Extra for overflow.
  3. Images — attached as stored or linked files, with a storage plan you have actually thought about.
  4. Transcription — produced by HTR or by hand, checked against the image, deposited as a child note or .txt/.html attachment, or a text-layer PDF.
  5. Anchoring — shelfmark header, transcription policy stated, `[fol. 12r]` markers at every leaf break.
  6. Masters — TEI, PAGE, or ALTO kept beside the derivative, not instead of it.
  7. Tags — for hands, statuses, people, and places, as a discovery layer over the text rather than a substitute for it.

None of this is elegant. Zotero was not designed as an archival database, and the fields show it. What it does well is hold the citation and hold it stably, which is the thing that has to survive the longest.

The habit worth building is smaller than the system: never let a transcription and its leaf reference become separated, at any stage, for any reason. Every downstream problem in archival work — the footnote you cannot verify, the quotation you cannot re-find, the reader's report asking which folio — comes back to a moment when text and page parted company. Keep them joined, state what your transcription does and does not normalize, and the record you build will still answer questions you have not thought to ask yet.

Frequently Asked Questions

How do I use Zotero for primary sources from an archive?

Use Zotero as a citation layer, not a text layer. Create a Manuscript or Letter item for each document you cite, plus one collection-level record for the bibliography entry. Put the repository name in Archive and a fixed-syntax string — collection, series, box, folder, shelfmark — in Loc. in Archive, repeating the call number there because that is the field citation styles reliably surface. Use Extra for overflow. Attach the photographs, then deposit a checked transcription beside them as a child note or a .txt/.html attachment with folio markers.

Does Zotero OCR handwritten manuscript images?

No. Zotero's full-text index covers embedded text in PDF, EPUB, HTML, and plain-text files, so a JPEG of a manuscript leaf produces no passage hits — there is no character layer to index. Zotero 7's main change is an improved built-in reader with ink, underline, and text annotations, which helps with text-bearing PDFs but is not OCR for a folder of photographs. Current documentation does not establish core OCR for image-only attachments. Transcription has to happen outside Zotero, then be deposited inside it as searchable text.

Should a transcription go in a Zotero child note or a file attachment?

A child note suits single documents and moderate lengths: it is searchable, autosaves, syncs with item metadata without counting against your file-storage quota, and is the easiest thing to quote from while writing. A .txt or .html child attachment is the better container for long transcriptions or a whole document run, since it sits squarely inside the documented full-text index and keeps whatever structure you put in the file. A PDF works only if it carries a genuine embedded text layer — test by copying text out of it.

Does Zotero sync attachment files like archival photographs?

Zotero's data sync covers items, notes, links, and tags, free and unlimited, but it does not sync attachment files. Stored files require Zotero Storage or WebDAV; Zotero Storage starts at 300 MB free, with 2 GB at $20/year and 6 GB at $60/year, so a few thousand reading-room photographs will exceed the free tier immediately. Linked files avoid the quota but need a synchronized folder you maintain yourself, and Zotero's guidance warns against placing the Zotero data directory in a cloud folder. Plan storage before the library grows.

How do I keep a transcription anchored to the folio it came from?

Anchor at the point of transcription, not afterwards. Open the note or file with the shelfmark and a one-line statement of transcription policy — diplomatic, expanded, or normalized — then insert an explicit marker at every leaf break: `[fol. 12r]`, `[fol. 12v]`, or `[image_012]` if your photographs are numbered rather than foliated. These are easy to type, search, and quote. If you are heading toward a digital edition, TEI's page-beginning element carries the folio number and associates it with a facsimile image; encode once and derive the plain-text version for Zotero.

Share this article

© 2026 Leo Technologies Limited. All rights reserved