Org-mode. Предпросмотр TeX

Предпросмотр TeX в org-mode.

Содержание

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

  • Входит в состав пакета org.

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

  • Визуализация запускается командой C-c C-x C-l (org-preview-latex-fragment).
  • Визуализация поддерева: C-u C-c C-x C-l.
  • Визуализация всего буфера: C-u C-u C-c C-x C-l.
  • Команда обрабатывает код Latex и создаёт изображение png или svg, которое накладывается на код LaTeX.
  • Просмотр других элементов LaTeX (например, листинг для кода) также работает.

3 Реализация

  • Список процедур обработки находятся переменной org-preview-latex-process-alist.
  • Используются методы: dvipng, imagemagick, dvisvgm.
  • Фрагмент кода встраивается в полный файл LaTeX, который затем обрабатывается программой LaTeX для создания файла dvi или pdf.
  • Затем результирующий файл преобразуется в формат png или svg.

4 Настройка

4.1 Метод конвертации

  • Необходимо выбрать метод конвертации (dvipng, imagemagick, dvisvgm):
    1;;; Use svg for rendering
    2(setq org-latex-create-formula-image-program 'dvisvgm)
    
  • Параметры создаваемых изображений:
    1(setq org-format-latex-options (plist-put org-format-latex-options :scale 0.8))
    2(setq org-format-latex-options (plist-put org-format-latex-options :density 600))
    3(setq org-format-latex-options (plist-put org-format-latex-options :background "Transparent"))
    

4.2 Список методов конвертации

  • Стандартный список методов конвертации задан в файле org.el:
     1(defcustom org-preview-latex-process-alist
     2  '((dvipng
     3     :programs ("latex" "dvipng")
     4     :description "dvi > png"
     5     :message "you need to install the programs: latex and dvipng."
     6     :image-input-type "dvi"
     7     :image-output-type "png"
     8     :image-size-adjust (1.0 . 1.0)
     9     :latex-compiler ("latex -interaction nonstopmode -output-directory %o %f")
    10     :image-converter ("dvipng -D %D -T tight -o %O %f")
    11     :transparent-image-converter
    12     ("dvipng -D %D -T tight -bg Transparent -o %O %f"))
    13    (dvisvgm
    14     :programs ("latex" "dvisvgm")
    15     :description "dvi > svg"
    16     :message "you need to install the programs: latex and dvisvgm."
    17     :image-input-type "dvi"
    18     :image-output-type "svg"
    19     :image-size-adjust (1.7 . 1.5)
    20     :latex-compiler ("latex -interaction nonstopmode -output-directory %o %f")
    21     :image-converter ("dvisvgm %f --no-fonts --exact-bbox --scale=%S --output=%O"))
    22    (imagemagick
    23     :programs ("latex" "convert")
    24     :description "pdf > png"
    25     :message "you need to install the programs: latex and imagemagick."
    26     :image-input-type "pdf"
    27     :image-output-type "png"
    28     :image-size-adjust (1.0 . 1.0)
    29     :latex-compiler ("pdflatex -interaction nonstopmode -output-directory %o %f")
    30     :image-converter
    31     ("convert -density %D -trim -antialias %f -quality 100 %O"))))
    
  • При необходимости эту запись можно заменить полностью, либо отредактировать по частям.
  • Например, будем запускать компилятор дважды:
    1(plist-put
    2 (cdr (assoc 'dvipng org-preview-latex-process-alist))
    3 :latex-compiler '("latex -interaction nonstopmode -output-directory %o %f"
    4                   "latex -interaction nonstopmode -output-directory %o %f"))
    

4.3 Пакеты

  • Набор используемых пакетов LaTeX заносятся в переменные:
    • org-latex-default-packages-alist : список пакетов по умолчанию, лучше не изменять;
    • org-latex-packages-alist : пустая по умолчанию переменная, заносите информацию сюда.

4.4 Разное

  • Созданные изображения лучше поместить в отдельный кэш:
    1(setq org-preview-latex-image-directory (concat home-cache-path "org-latex/"))
    

5 Опции в org-файле

  • Вы можете включить предварительный просмотр всех фрагментов LaTeX в файле с помощью опции:
    1#+STARTUP: latexpreview
    
  • Чтобы отключить предпросмотр:
    1#+STARTUP: nolatexpreview
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие