Как увеличить фрагменты латекса в режиме org одновременно с буфером текста?

12

Я использую org-modeв Emacs, но я думаю, что вопрос также актуален для auctexпользователей.

В нем org-modeможно показать фрагменты латекса, как показано в руководстве .

Но: эти фрагменты (в основном математические формулы), кажется, имеют постоянный размер. Когда я набираю текст C-x C-+или C-x C-- только размер буфера меняется. Как я могу изменить размер фрагментов из буфера?

(Я знаю, что могу сделать фрагменты больше или меньше org-format-latex-options, но это навсегда. Я хочу изменить размер фрагментов (png-файлов), как текст.)

Michaell
источник

Ответы:

4

Обновленный ответ: (спасибо за отзыв)

(defun update-org-latex-fragments ()
  (org-latex-preview '(64))
  (plist-put org-format-latex-options :scale text-scale-mode-amount)
  (org-latex-preview '(16)))
(add-hook 'text-scale-mode-hook 'update-org-latex-fragments)

Старый ответ:

Вот начало: подключите text-scale-mode-hookи обновите org-format-latex-optionsсоответственно.

(defun update-org-latex-фрагментов ()
  (org-toggle-latex-фрагмент '(16))
  (plist-put org-format-latex-options: масштабировать текст-масштаб-режим-количество)
  (org-toggle-latex-фрагмент '(16)))
(add-hook 'text-scale-mode-hook' update-org-latex-фрагментов)

Может потребоваться масштабный коэффициент, прежде чем text-scale-mode-amount...

thisirs
источник
Нет org-toggle-latex-fragmentфункции в последнем орг-режиме.
Leu_Grady
@ user3173715 Ваш последний не мой тогда ...
Thisirs
вы используете разработку org-mode?
Leu_Grady
@ user3173715 использования org-preview-latex-fragment(устаревшее с августа 2014 года)
thisirs
org-toggle-latex-fragmentустарел с тех пор org 9.3. Используйте org-latex-previewвместо этого. Более того, по крайней мере, на моей стороне, первый org-toggle-latex-fragmentдолжен взять '(64)вместо. '(64)очистить изображения в буфере и '(16)отобразить их (см. документ).
Фирмин Мартин
2

Основываясь на ответе этого, я с успехом использую следующее. Коэффициент масштабирования в этом примере составляет 2,3:

(defun update-org-latex-fragment-scale ()
  (let ((text-scale-factor (expt text-scale-mode-step text-scale-mode-amount)))
    (plist-put org-format-latex-options :scale (* 2.3 text-scale-factor)))
)
(add-hook 'text-scale-mode-hook 'update-org-latex-fragment-scale)

Обратите внимание, что я удалил код, который включает предварительный просмотр, так как я предпочитаю делать это вручную, и это может занять некоторое время, если есть много фрагментов для предварительного просмотра. Этот код настраивает только масштаб предварительно просматриваемых фрагментов, поэтому при следующем их использовании C-c C-x C-lони будут иметь соответствующий размер, соответствующий тексту.

отметка
источник
Нужно ли жесткое кодирование фактора?
Т. Веррон
@ T.Verron масштабный коэффициент - это то, что влияет на то, насколько велик или мал просматриваемый фрагмент по отношению к размеру текста. Соотношение между этими двумя значениями, вероятно, зависит от шрифта, который вы используете, и, возможно, от разрешения экрана. Может быть возможно автоматизировать вычисление масштабного коэффициента, но я предпочитаю просто возиться с ним, пока он не понравится мне. Обратите внимание, что «жестко запрограммированный масштабный коэффициент» отличается от текстового масштабного коэффициента, который автоматически изменяется при увеличении масштаба текста.
Марк
О, хорошо, я действительно думал, что это будет фактор увеличения. Сожалею!
Т. Веррон
0

Это уже встроено, если вы используете texfrag-modeв Orgmode вместо встроенного фрагмента LaTeX поддержку Orgmode.

Просто измените фрагменты LaTeX с помощью C-c C-p C-dизменения размера с помощью C-x C-+ C-+ .... Размер фрагментов LaTeX будет соответствовать размеру окружающего текста.

Нормальный размер текста:

Нормальный размер текста

После нажатия C-x C-+ C-+ C-xи C-c C-p C-d:

введите описание изображения здесь

Sidenote: с последней версией texfrag вы также можете активировать texfrag-show-last-mode. При активированном второстепенном режиме Texfrag показывает последний обработанный LaTeX-фрагмент в качестве дескриптора, если вы редактируете формулу:

texfrag-шоу-последний режим

Тобиас
источник