Emacs. Пакет doc-toc

2025-05-10 · 2 мин. для прочтения

Emacs. Пакет doc-toc.

Содержание

1 Общая информация

1.1 Предыдущий вариант пакета

  • Название:
  • Репозиторий: https://github.com/dalanicolai/toc-mode
  • Оставлен для совместимости.
  • Чтобы пакеты, использующие его, не перестали работать.

2 Установка

  • Зависимости:
    • pdftotext (из пакета poppler-utils),
    • pdfoutline (из fntsample),
    • djvused (для DjVu),
    • tesseract (для OCR, если документ без текстового слоя);
    • pdf-tocgen (см. Pdf. Оглавление. pdf.tocgen).
  • Gentoo:

3 Использование

  • Извлечение и добавление содержимого в документ выполняется в 4 этапа:
    • извлечение
    • очистка
    • отрегулировать/исправить номера страниц
    • добавить оглавление в документ

3.1 Извлечение оглавления

3.1.1 Для PDF с текстовым слоем

  • Откройте PDF в Emacs (рекомендуется pdf-tools).
  • Выполните M-x doc-toc-extract-pages.
  • Укажите начальную и конечную страницы оглавления.
  • Результат появится в буфере TOC-cleanup.

3.1.2 Для сканированных PDF/DjVu (через OCR):

  • Выполните M-x doc-toc-extract-pages-ocr.
  • Укажите диапазон страниц и параметры OCR (например, psm 1 для двухколоночного текста).

3.2 Очистка и настройка структуры

  • В режиме TOC-cleanup:
    • Объедините строки без номеров: C-c C-j.
    • Преобразуйте римские цифры в арабские: C-c C-s.
    • Используйте C-c C-c для перехода к следующему шагу.

3.3 Корректировка номеров страниц

  • В режиме doc-toc-mode:
    • Перемещайтесь по записям: TAB (предпросмотр страницы).
    • Изменяйте номера: S-right / S-left (увеличить/уменьшить).
    • Прокрутка документа: C-down / C-up.

3.4 Добавление оглавления в документ

  1. После настройки нажмите C-c C-c.
  2. Для PDF:
    • Оглавление добавится в копию файла (output.pdf).
    • Если doc-toc-replace-original-file = nil, исходный файл не изменится.

3.5 Советы

  • Для автоматического определения уровней заголовков:
    1. Выделите слово в заголовке.
    2. Выполните M-x doc-toc-gen-set-level → укажите уровень (1, 2 и т.д.).
    3. Запустите M-x doc-toc-extract-with-pdf-tocgen.

4 Пример конфигурации для двухколоночного TOC

;; Настройка языков OCR
(setq doc-toc-ocr-languages '("eng+rus"))
;; Не заменять исходный файл
(setq doc-toc-replace-original-file nil)

5 Клавиатурные сочетания

  • all-modes
    • C-c C-c : dispatch (next step)
  • doc-toc-cleanup-mode
    • C-c C-j : doc-toc–join-next-unnumbered-lines
    • C-c C-s : doc-toc–roman-to-arabic
  • doc-toc (tablist)
    • TAB : preview/jump-to-page
    • right / left : doc-toc-in/decrease-remaining
    • C-right / C-left : doc-toc-in/decrease-remaining and view page
    • S-right / S-left : in/decrease pagenumber current entry
    • C-down / C-up : scroll document other window (if document buffer shown)
    • S-down / S-up : full page scroll document other window ( idem )
    • C-j : doc-toc–jump-to-next-entry-by-level
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.