この記事はTSG Advent Calendar 2025 7日目の記事です
論文をPaperwhiteで読みたい
PC以外で論文を読むときにデバイスの選択肢としてスマホとPaperwhiteがあるのですが、スマホは画面が小さすぎるのでPaperwhiteで読めないかなと思っていました。
しかしPaperwhiteはピンチ(拡大縮小)操作の反応が遅く、PDFを直に取り込むとかなり読みづらいです。double columnであれば1カラム分を拡大することでなんとか読めるのですが、single columnだと拡大しながらあちこち動かすことになりとても面倒です。
しばらくPDFをリフロー表示(画面幅に合わせて文字を折り返す)させる方法を調べていたのですが、あるときArXivのHTML形式をそのまま読み込めばいいのではないかと思いつきました
Paperwhiteに送るまでの流れ
次の流れでArXivからPaperwhiteに送ってみます
- ArXivにアクセスしHTML版の論文を取得
- HTMLを整形してEPUB形式にする
- Send to KindleでEPUBをPaperwhiteに送信
このうち1と2を自動化し、こんな感じのウェブサイトを作りました

実装:https://github.com/Yosshi999/arxiv_html_to_epub/
単一のHTMLとJSからなるシンプルなもので、次のような処理を行っています
- 入力されたURLからarXiv IDをパース
- HTML版の論文ページ
https://arxiv.org/html/${id}/をfetch - 目次のサイドバーは取り除きたいので、論文本体の
.ltx_page_contentクラスを取得する - 論文内の画像をローカルからの読み込みに書き換えるために、論文内のimgタグを解析し画像をダウンロード
- もろもろの不必要なタグ(reportボタンなど)を削除
- 数式のMathMLを画像に書き換えローカル保存
- EPUBに整形し、JSZipで固める
これを実装するにあたってはまったポイントを紹介します。
MathML数式が表示されない
MathMLは数式をXML形式で表すための形式で、arXivが元のtexからMathMLに置き換えてHTML版に埋めなおしています。EPUBはMathMLに対応しており、どうもkindleもMathMLに対応しているはずなのですが、なぜかPaperwhiteに送ると数式が表示されませんでした。
そのためMathMLは諦めて、MathJaxを使ってSVGに変換し、さらにそれをcanvas経由でpngに変換しました。
表示が崩れる
これはいまだに解決していません。arXivがHTML化した時点で崩れているのはしょうがないとして、こちらで処理したときに微妙に見栄えが悪くなってしまっています。

↑なんか数式が上にずれることがある (元論文)
当初はarXivが読んでいるCSSを一緒につけていたのですが、なぜか読み込みがおかしくなってしまい、Kindle Previewerも不明なエラーを返してしまうため、アレコレ試した結果あきらめています。
さらに、しばしば数式の一部が消えてしまっています。どうもMathJaxがSVGを吐く時点で消えているようなのですが、直し方が良く分かっていません。
まとめ
今回はarXivのHTML版を読み込んでPaperwhiteに送る方法を紹介しました。ただ現在の実装では表示が崩れておりデバッグに苦戦しています。。。
