Удивительное дело -- в Emacs есть практически все, что нужно для хорошей читалки: и закладки, и автоформатирование, и запоминание позиции в файле. А читалки нет. Я вот подумал, а не восполнить ли пробел.
Bread Library: http://rootshell.be/~minaev/bread.html
Txt, понятное дело, читается. pdf -- тоже, в doc-view, с поддержкой закладок. Для fb2 написал хак в 5 строчек, который убирает тэги и сворачивает строки. Пока хватит. Читать лучше на LBook Smile. В основном я пока писал каталог книг. Опять-таки, максимально используя готовые пакеты. Каталог ведется в виде простого списка (в терминах elisp, конечно). Для просмотра конвертируется в Org-mode. В результате имеем следующее:
1. Библиотека, которую можно пополнять вручную, из Dired, либо автоматически, указав, в каком каталоге лежат книги.
2. Группировка: по названиям, по авторам/названиям, по жанрам/авторам/названиям.
3. Тэги, поиск по тэгам
4. Пометки о статусе: toread, reading, done, thrownaway, etc.
5. Оценки книг по 10 балльной шкале, от 0 до 9.
6. При добавлении файлов метаданные берутся, по возможности, из самих файлов: для fb2 -- автор, название, жанр, аннотация; для pdf -- автор, название. Для других типов файлов (и для pdf, если в файле нет нужных метаданных) эта информация берется из пути к файлу: имя файла считается названием книги, имя каталога -- именем автора, имя родительского каталога -- жанром.
7. С помощью Org-mode agenda можно делать отчеты. Например, список прочитанного, отсортированный по рейтингу (вроде того, который я выкладывал: http://rootshell.be/~minaev/chart.html ).
Скриншот: