Converting papers to EPUB to read in e-ink devices

Converting research papers to EPUB for e-ink reading, and why a benchmark feedback loop changed everything

Index

  1. Introduction
  2. How It Works
  3. The feedback loop breakthrough

Introduction

I like to read papers, and to avoid spending more time on a computer, I decided to start reading them on an e-ink device. I dreamed about a large A4-size device, but before committing, I realized that reading them on my Kindle Paperwhite was only painful because of the PDF format and the typical research paper standards (e.g., two-column layout).

The online conversion from PDF to EPUB was poor, so I built a small tool to convert papers to EPUB optimized for Kindle-like reading. It started as a quick script, but it became much more useful after tightening the quality around math, image handling, and structure.

The project is open source here: pdf-to-epub.

For usage and setup details, check the README in the repo. The simplest conversion command is:

python pdf_to_epub.py https://arxiv.org/pdf/2511.10395

I hope it is useful to people with e-readers in general: Kindle, Kobo, Boox, etc.

How it works

The conversion pipeline is short: OCR the paper, normalize markdown artifacts, then generate EPUB.

The feedback loop breakthrough

I've been using it for 6 months, and it was ok. I accepted the many mistakes in it, because it was still better than the online version. Nonetheless, since I'm exercising my skills in generating feedback loops for AI-assisted development, I picked this project to improve.

Instead of trying one paper, patching once, and hoping it generalizes, I used a benchmark set of papers with different failure modes (two-column text, equation-heavy content, image-rich pages). Then the cycle became:

  1. run benchmark
  2. Inspect concrete failures
  3. patch a focused part of the converter
  4. rerun and verify no regressions

AI assistance became much more effective only after this loop existed. Without strong feedback, AI suggestions are often plausible but shallow. With a benchmark and explicit pass/fail signals, iteration became fast, objective, and cumulative.

The AI tool I used, Codex, created the benchmark, requested clarification about quality criteria, and iterated until it was performing well on it.

Having a long-running agent in a task is amazing, and excludes me as the bottleneck for quality assurance.

Moneda, Luis (2026). "Converting papers to EPUB to read in e-ink devices". Retrieved March 21, 2026, from lgmoneda.github.io.

@misc{moneda2026pdf-to-epub-feedback-loop-blogpost, author = {Moneda, Luis}, title = {Converting papers to EPUB to read in e-ink devices}, year = {2026}, url = {https://lgmoneda.github.io/2026/03/21/converting-papers-to-epub-to-read-in-e-ink-devices.html}, note = {Accessed: 2026-03-21} }