I Wrote This On My Remarkable 2

Published August 8, 2023

About a month ago I picked up a Remarkable 2, which is an e-ink tablet marketed towards folks wanting to primarily write—either with the proprietary keyboard folio or marker. It’s secondary function is as a device to read PDF and EPUB files on—but is much worse than a dedicated e-reader device e.g. Kindle.

Overall, it’s a minimal & opinionated device: the software is proprietary and while it’s able to connect to WiFi, it’s only for syncing with their apps or the my.remarkable.com service. There’s no builtin web browser, for example.

And yet, I’ve been really enjoying my time with the device so far. It’s my first large-format e-ink experience—I’ve had a couple different Garmin Instinct watch models for the past 3+ years. It’s not inexpensive by any means, coming in at $600-700 USD after taxes and fully-loaded with accessories (the keyboard folio and marker w/ eraser).

I’ll admit I’m still figuring out workflows to use it that work for me. Ideally I’d like to move more of my async media consumption e.g. RSS feeds and news-letters on to it. And using something like hyperpaper.me to make it function more as a planner or (bullet) journal.

But for now, I’ve just been casually jotting things down via the keyboard or my awful handwriting (the Quick Sheets feature is great to quickly start writing). I’m hopeful that it will be a good pairing to taking notes on books that I’m reading. And of course, as the title of the post suggests, writing first-drafts on it.

Unfortunately, there’s no native export to Markdown, essentially just to a PDF1. And Pandoc, surprisingly, can’t convert from PDF to Markdown. So, I’m attempting to write a script to leverage the nix-shell shebang for reproducibility and exec the pdf2txt Python package and finally pipe that to Pandoc. So, effectively, PDF2HTML2MD2. If that were a math equation, half of it would cancel out and you’re left with the string PFHTL.

If that all goes well, Future Paul (tm) can insert any more implementation details and hopefully a link to wherever the script ends up living.


Future Paul™ here. For you, it’s been seamless, but for myself a couple days have passed since writing the above draft from a favorite neighborhood cafe. I did follow through with my promise though, I created a pdf2md script that now lives in my dotfiles: https://github.com/Pinjasaur/dotfiles/blob/8fe40f1217be9aea8c30e35d0dbe0a37ac131c6b/bin/pdf2md

It was my first time using nix-shell for reproducible scripts and I think that’s a pattern I’ll use more and more going forward. The core logic, though, is really just a one-liner like so:

pdf2txt -t text input.pdf | pandoc -t markdown-smart > input.md

There’s a bit more logic I do for basic error checking and (optionally) being able to supply line-length for the file. As a note, the -smart extension is intentional: it’s enabled by default for the (implicit) Markdown input, so I disable it for the (explicit) output to keep the changes e.g. quotes, dashes, ellipses, etc.

One of the weird artifacts I found from this process is Remarkable is automatically adding f-ligatures. I don’t hate it enough to manually or programmatically filter them out, but I would prefer to not have native ligature glyphs in my authored Markdown documents. As I write more complex prose I’m sure I’ll encounter more artifacts like that.

I consider this is successful test drive of another workflow I can leverage. And hopefully I continue to do so—I enjoyed being able to front-load a mostly write-only draft and do an editing loop after the fact.


  1. There’s also SVG and PNG, but they’re even less useful for what I’m after.↩︎

  2. When I initially wrote this I thought converting to HTML would be worthwhile, but I ended up simply converting it to text instead.↩︎

Last modified January 21, 2024  #meta   #programming   #writing   #words   #remarkable 

🔗 Backlinks

← Newer post  •  Older post →