Jak powiększyć fragmenty lateksu w trybie org w tym samym czasie, co tekst bufora?

12

Używam org-modew emacs, ale myślę, że pytanie dotyczy także auctexużytkowników.

W org-modemożna pokazać lateks fragmenty, gdyż instrukcja pokazuje.

Ale: te fragmenty (głównie wzory matematyczne) wydają się mieć stały rozmiar. Kiedy piszę C-x C-+lub zmienia się C-x C-- tylko rozmiar tekstu bufora. Jak mogę zmienić rozmiar fragmentów z bufora?

(Wiem, że mogę powiększać lub zmniejszać fragmenty org-format-latex-options, ale jest to trwałe. Chcę zmienić rozmiar fragmentów (plików png) jak tekst.)

Michaell
źródło

Odpowiedzi:

4

Zaktualizowana odpowiedź: (dzięki za opinie)

(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)

Stara odpowiedź:

Oto początek: podłącz text-scale-mode-hooki zaktualizuj org-format-latex-optionsodpowiednio.

(defun update-org-latex-fragments ()
  (org-toggle-latex-fragment '(16))
  (plist-put org-format-latex-options: skaluj tekst-skaluj-tryb-ilość)
  (org-toggle-latex-fragment '(16)))
(add-hook 'text-scale-mode-hook' update-org-latex-fragments)

Czynnik skalowania może być jednak potrzebny przed text-scale-mode-amount...

toirs
źródło
Brak org-toggle-latex-fragmentfunkcji w najnowszym trybie organizacji.
Leu_Grady
@ user3173715 Twój najnowszy nie jest wtedy moim najnowszym ...
to
używasz programistycznego trybu org?
Leu_Grady
@ user3173715 Wykorzystanie org-preview-latex-fragment(nieaktualne od sierpnia 2014 r.)
to
org-toggle-latex-fragmentjest już przestarzały org 9.3. Użyj org-latex-previewzamiast tego. Co więcej, przynajmniej po mojej stronie, zamiast tego org-toggle-latex-fragmentpowinien wziąć pierwszy '(64). '(64)usuń obrazy z bufora i '(16)wyświetl je (por. dokument).
Firmin Martin
2

W oparciu o odpowiedź z tych pytań z powodzeniem wykorzystuję następujące. Współczynnik skali w tym przykładzie wynosi 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)

Zauważ, że usunąłem kod, który przełącza podgląd, ponieważ wolę to robić ręcznie, i może zająć trochę czasu, jeśli jest wiele fragmentów do podglądu. Ten kod dostosowuje tylko skalę podglądanych fragmentów, dzięki czemu przy następnym wyświetleniu C-c C-x C-lbędą miały odpowiedni rozmiar, który pasuje do tekstu.

znak
źródło
Czy konieczne jest ustalenie stałego współczynnika?
T. Verron,
@ T.Verron współczynnik skali ma wpływ na to, jak duży lub mały jest podglądany fragment w odniesieniu do rozmiaru tekstu. Proporcje między tymi dwoma prawdopodobnie zależą od używanej czcionki i prawdopodobnie rozdzielczości ekranu. Może być możliwe zautomatyzowanie obliczania współczynnika skali, ale wolę po prostu nim manipulować, aż mi się spodoba. Zauważ, że „zakodowany na stałe współczynnik skali” nie jest tym samym co współczynnik skali tekstu, który zmienia się automatycznie podczas powiększania tekstu.
Mark
Och, ok, rzeczywiście myślałem, że to będzie współczynnik powiększenia. Przepraszam!
T. Verron
0

Jest to już wbudowane, jeśli używasz texfrag-modew Orgmode zamiast wbudowanej obsługi fragmentów LaTeX w Orgmode.

Po prostu ponownie wygeneruj fragmenty LaTeX C-c C-p C-dpo zmianie rozmiaru za pomocą C-x C-+ C-+ .... Rozmiar fragmentów LaTeX będzie pasował do rozmiaru otaczającego tekstu.

Normalny rozmiar tekstu:

Normalny rozmiar tekstu

Po naciśnięciu C-x C-+ C-+ C-xi C-c C-p C-d:

wprowadź opis zdjęcia tutaj

Sidenote: W ostatniej wersji texfrag możesz także aktywować texfrag-show-last-mode. Po włączeniu tego trybu pomocniczego Texfrag pokazuje ostatni renderowany fragment LaTeX jako uchwyt, jeśli edytujesz formułę:

texfrag-show-last-mode

Tobiasz
źródło