Come ingrandire i frammenti di lattice in modalità org contemporaneamente al testo del buffer?


12

Sto usando org-modeEmacs, ma penso che la domanda sia rilevante anche per gli auctexutenti.

In org-modepuoi mostrare frammenti di lattice, come dimostra il manuale .

Ma: questi frammenti (principalmente formule matematiche) sembrano avere dimensioni costanti . Quando scrivo C-x C-+o cambia C-x C-- solo la dimensione del testo del buffer. Come posso modificare la dimensione dei frammenti dal buffer?

(So ​​di poter ingrandire o ridurre i frammenti con org-format-latex-options, ma questo è permanente. Voglio cambiare la dimensione dei frammenti (i file png) come il testo.)

Risposte:


4

Risposta aggiornata: (grazie per il 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)

Vecchia risposta:

Ecco un inizio: aggancia text-scale-mode-hooke aggiorna di org-format-latex-optionsconseguenza.

(defun update-org-latex-fragments ()
  (org-toggle-latex-fragment '(16))
  (plist-put org-format-latex-options: scale text-scale-mode-amount)
  (org-toggle-latex-fragment '(16)))
(aggiungi hook 'text-scale-mode-hook' update-org-latex-fragments)

Un fattore di ridimensionamento potrebbe essere necessario prima text-scale-mode-amountperò ...


Nessuna org-toggle-latex-fragmentfunzione nell'ultima modalità org.
— Leu_Grady,

@ user3173715 La tua ultima non è la mia più recente ...
— termina il

stai usando la modalità org di sviluppo?
— Leu_Grady,

@ user3173715 Usa org-preview-latex-fragment(obsoleto dall'agosto 2014)
— termina il

org-toggle-latex-fragmentè obsoleto da allora org 9.3. Usa org-latex-previewinvece. Inoltre, almeno al mio fianco, il primo org-toggle-latex-fragmentdovrebbe prendere '(64)invece. '(64)cancella le immagini nel buffer e le '(16)visualizza (vedi il documento).
— Firmin Martin,

2

Sulla base della risposta di questi, sto usando quanto segue con successo. Il fattore di scala in questo esempio è 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)

Nota che ho rimosso il codice che attiva / disattiva l'anteprima, poiché preferisco farlo manualmente e può richiedere del tempo se ci sono molti frammenti da visualizzare in anteprima. Questo codice regola solo la scala dei frammenti visualizzati in anteprima, in modo che alla successiva visualizzazione C-c C-x C-l, avranno una dimensione appropriata che corrisponda al testo.


L'hardcoding è il fattore necessario?
— T. Verron,

@ T.Verron il fattore di scala è qualcosa che influenza quanto grande o piccolo sia il frammento previsto rispetto alla dimensione del testo. Il rapporto tra questi due probabilmente dipende dal tipo di carattere che stai utilizzando e possibilmente dal dpi dello schermo. Potrebbe essere possibile automatizzare il calcolo di un fattore di scala, ma preferisco solo giocherellare con esso fino a quando non mi sembra di mio gradimento. Si noti che il "fattore di scala codificato" non è lo stesso del fattore di scala del testo, che cambia automaticamente quando si ingrandisce il testo.
— Segna l'

Oh, ok, in effetti ho pensato che sarebbe stato il fattore di zoom. Scusate!
— T. Verron,

0

Ciò è già incorporato se si utilizza texfrag-modeOrgmode anziché il supporto per frammenti LaTeX incorporato di Orgmode.

Rigenera i frammenti di LaTeX semplicemente C-c C-p C-ddopo aver modificato le dimensioni con C-x C-+ C-+ .... La dimensione dei frammenti LaTeX si adatta alla dimensione del testo circostante.

Dimensione normale del testo:

Dimensione del testo normale

Dopo aver premuto C-x C-+ C-+ C-xe C-c C-p C-d:

inserisci qui la descrizione dell'immagine

Sidenote: con l'ultima versione di texfrag puoi anche attivare texfrag-show-last-mode. Con quella modalità minore attivata, Texfrag mostra l'ultimo frammento LaTeX renderizzato come handle se si modifica la formula:

texfrag-show-ultima-mode

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.