Як збільшити фрагменти латексу в режимі org одночасно з текстом буфера?


12

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

У org-modeви можете показати латекс фрагменти, як керівництво демонструє.

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

(Я знаю, що можу зробити фрагменти більшими або меншими за допомогою org-format-latex-options, але це є постійним. Я хочу змінити розмір фрагментів (файлів png), як текст.)

Відповіді:


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-late-latex-fragments ()
  (org-toggle-latex-fragment '(16))
  (plist-put org-format-latex-options: масштаб тексту-масштабу-режим-кількість)
  (org-toggle-latex-fragment '(16)))
(оновлення-org-латекс-фрагменти "add-гак" текст-масштаб-режим-гачок)

Фактор масштабування може знадобитися раніше, text-scale-mode-amountхоча ...


У org-toggle-latex-fragmentостанньому орг-режимі немає функції.
Leu_Grady

@ user3173715 Твій останній не останній мій ...
thisirs

ви використовуєте розробник org-mode?
Leu_Grady

@ user3173715 Використання org-preview-latex-fragment(застаріле з серпня 2014 р.)
це

org-toggle-latex-fragmentзастаріла з тих пір org 9.3. Використовуйте org-latex-previewзамість цього. Більше того, принаймні, на моєму боці, перший org-toggle-latex-fragmentповинен '(64)замість цього взяти . '(64)очистіть зображення в буфері та '(16)відобразіть їх (пор. doc).
Фірмін Мартін

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 масштабний коефіцієнт - це те, що впливає на те, наскільки великий чи маленький фрагмент, який переглядається, щодо розміру тексту. Співвідношення між цими двома, ймовірно, залежить від шрифту, який ви використовуєте, та, можливо, від dpi на екрані. Можливо, можливо автоматизувати обчислення масштабного фактора, але я вважаю за краще просто поспішати з ним, поки це не подобається мені. Зауважте, що "жорстко закодований коефіцієнт масштабу" не такий, як текстовий масштаб-фактор, який автоматично змінюється, коли ви збільшуєте текст.
Марк

О, гаразд, я дійсно думав, що це буде коефіцієнт збільшення. Вибачте!
Т. Веррон

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-show-last-mode

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.