Wie vergrößere ich Latexfragmente im org-Modus gleichzeitig mit dem Puffertext?

12

Ich verwende org-modein Emacs, aber ich denke, die Frage ist auch für auctexBenutzer relevant .

In können org-modeSie Latexfragmente zeigen, wie das Handbuch zeigt.

Aber: Diese Fragmente (meistens mathematische Formeln) scheinen eine konstante Größe zu haben . Wenn ich tippe C-x C-+oder C-x C-- nur die Puffertextgröße ändert. Wie kann ich die Fragmentgröße aus dem Puffer ändern?

(Ich weiß, dass ich die Fragmente mit vergrößern oder verkleinern kann org-format-latex-options, aber das ist permanent. Ich möchte die Größe der Fragmente (der PNG-Dateien) wie den Text ändern.)

michaell
quelle

Antworten:

4

Aktualisierte Antwort: (danke für das Feedback)

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

Alte Antwort:

Hier ist ein Anfang: Haken Sie ein text-scale-mode-hookund aktualisieren Sie org-format-latex-optionsentsprechend.

(defun update-org-latex-fragmente ()
  (org-toggle-latex-fragment '(16))
  (plist-put org-format-latex-optionen: skalieren text-scale-mode-menge)
  (org-toggle-latex-fragment '(16)))
(Add-Hook 'Text-Scale-Mode-Hook' Update-Org-Latex-Fragmente)

Möglicherweise ist jedoch zuvor ein Skalierungsfaktor erforderlich text-scale-mode-amount...

thisirs
quelle
Keine org-toggle-latex-fragmentFunktion im neuesten Organisationsmodus.
Leu_Grady
@ user3173715 Ihre neueste ist nicht meine neueste dann ...
thisirs
Sie verwenden den Entwicklungs-Organisationsmodus?
Leu_Grady
@ user3173715 Verwendung org-preview-latex-fragment(veraltet seit August 2014)
dies ist der
org-toggle-latex-fragmentist seitdem veraltet org 9.3. Verwenden Sie org-latex-previewstattdessen. Außerdem sollte zumindest an meiner Seite der erste stattdessen org-toggle-latex-fragmentnehmen '(64). '(64)Löschen Sie Bilder im Puffer und '(16)zeigen Sie sie an (vgl. das Dokument).
Firmin Martin
2

Basierend auf der Antwort von thisirs verwende ich Folgendes mit Erfolg. Der Skalierungsfaktor in diesem Beispiel beträgt 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)

Beachten Sie, dass ich den Code entfernt habe, mit dem die Vorschau umgeschaltet wird, da ich dies lieber manuell mache. Es kann eine Weile dauern, bis viele Fragmente in der Vorschau angezeigt werden. Dieser Code passt nur den Maßstab der Fragmente in der Vorschau an, sodass sie bei der nächsten Anzeige C-c C-x C-leine geeignete Größe haben, die dem Text entspricht.

Kennzeichen
quelle
Ist Hardcodierung der notwendige Faktor?
T. Verron
@ T.Verron Der Skalierungsfaktor beeinflusst, wie groß oder klein das angezeigte Fragment in Bezug auf die Textgröße ist. Das Verhältnis zwischen diesen beiden hängt wahrscheinlich von der verwendeten Schriftart und möglicherweise von der Auflösung Ihres Bildschirms ab. Es mag möglich sein, die Berechnung eines Skalierungsfaktors zu automatisieren, aber ich ziehe es vor, nur damit herumzuspielen, bis es mir gefällt. Beachten Sie, dass der "fest codierte Skalierungsfaktor" nicht mit dem Textskalierungsfaktor identisch ist, der sich automatisch ändert, wenn Sie Ihren Text zoomen.
Mark
Oh, ok, in der Tat dachte ich, dass es der Zoomfaktor sein würde. Es tut uns leid!
T. Verron
0

texfrag-modeDies ist bereits integriert, wenn Sie in Orgmode anstelle der integrierten LaTeX-Fragmentunterstützung von Orgmode verwenden.

Regenerieren Sie einfach die LaTeX-Fragmente mit, C-c C-p C-dnachdem Sie die Größe mit geändert haben C-x C-+ C-+ .... Die Größe der LaTeX-Fragmente entspricht der Größe des umgebenden Textes.

Normale Textgröße:

Normale Textgröße

Nach dem Drücken von C-x C-+ C-+ C-xund C-c C-p C-d:

Geben Sie hier die Bildbeschreibung ein

Nebenbemerkung: Mit der letzten Version von texfrag können Sie auch aktivieren texfrag-show-last-mode. Wenn dieser Nebenmodus aktiviert ist, zeigt Texfrag das zuletzt gerenderte LaTeX-Fragment als Handle an, wenn Sie die Formel bearbeiten:

texfrag-show-last-mode

Tobias
quelle