Skip to content

PaperFlow v0.5.0 — Layout-aware translation

Choose a tag to compare

@06-month 06-month released this 01 Aug 16:33
· 6 commits to main since this release

Zotero 7–9 plugin for translating and reading academic papers with Gemini.

Layout-aware translation

  • Layout-aware pipeline — native PDF text coordinates are retained and page blocks are classified with Gemini structured output, so paragraph and two-column reading order survives translation. Falls back to the previous text-only pipeline when analysis fails.
  • Original visual regions — complete Figure/Table regions are reconstructed from the rendered source page, so a composite figure stays one figure. Translated captions render directly below the original visual.
  • LaTeX mathematics — detected formulas are converted to LaTeX and rendered as native Presentation MathML. Numbered/standalone equations keep their $$...$$ source, viewable from a collapsible panel.
  • Local split cache — per-paper Markdown, manifest JSON, page text, full-page renders, and extracted visuals are written under <Zotero data>/PaperFlow_PdfSplit/.
  • Parallel processing — page analysis and translation run concurrently with a configurable 2–14 worker setting; rate-limit slot allocation is serialized so workers cannot race past the RPM/RPD guard.
  • A privacy-visible preference gates layout analysis, since rendered pages and embedded text are sent to Gemini when it is enabled.

Chat

  • The standalone Tools → Open PaperFlow Panel chat now matches the Reader sidebar: PDF/Summary/Translation selection capture, removable attachment cards, Finder file attachments, clipboard image paste, Gemini multimodal payloads, and multi-turn history.
  • Gemini answers render Markdown (headings, lists, tables, quotes, links, code) and inline/display LaTeX as native MathML, built via DOM construction rather than innerHTML.
  • The composer cycles through suggested questions instead of a fixed placeholder.

Fixes

  • Sending a message while a Korean IME composition was open left one syllable behind in the input. The composition is now committed before the value is read — the send button path included, not just Enter.
  • The chat input grows with its content and the chat pane now measures what its composer and attachment chips need, claiming that height from the view above. The composer expands upward instead of sliding past the bottom of the window, and the divider can no longer be dragged below that floor.
  • Holding the cursor at the pane-collapse threshold no longer flickers between split and content-only.

Install

Download paperflow.xpi below → Zotero Tools → Plugins → gear icon → Install Plugin From File → restart Zotero → set your Gemini API key in Preferences → PaperFlow.

Full changelog: https://github.com/06-month/paperflow/blob/main/CHANGELOG.md