Comment agrandir des fragments de latex en mode org en même temps que le texte tampon?

12

J'utilise org-modedans emacs, mais je pense que la question est également pertinente pour les auctexutilisateurs.

En org-modevous pouvez montrer des fragments de latex, comme le manuel montre.

Mais: ces fragments (principalement des formules mathématiques) semblent avoir une taille constante . Lorsque je tape C-x C-+ou C-x C-- seulement la taille du texte du tampon change. Comment puis-je changer la taille des fragments à partir du tampon?

(Je sais que je peux agrandir ou réduire les fragments avec org-format-latex-options, mais c'est permanent. Je veux changer la taille des fragments (les fichiers png) comme le texte.)

Michael
la source

Réponses:

4

Réponse mise à jour: (merci pour les commentaires)

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

Ancienne réponse:

Voici un début: connectez-vous text-scale-mode-hooket mettez à jour en org-format-latex-optionsconséquence.

(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)))
(add-hook 'text-scale-mode-hook' update-org-latex-fragments)

Un facteur d'échelle pourrait être nécessaire avant text-scale-mode-amountcependant ...

thisirs
la source
Aucune org-toggle-latex-fragmentfonction dans le dernier mode org.
Leu_Grady
@ user3173715 Votre dernier n'est pas mon dernier alors ...
thisirs
vous utilisez le mode org de développement?
Leu_Grady
@ user3173715 Use org-preview-latex-fragment(obsolète depuis août 2014)
thisirs
org-toggle-latex-fragmentest obsolète depuis org 9.3. Utilisez org-latex-previewplutôt. D'ailleurs, du moins à mes côtés, le premier org-toggle-latex-fragmentdevrait '(64)plutôt prendre . '(64)effacer les images dans le buffer et les '(16)afficher (cf. doc).
Firmin Martin
2

Sur la base de la réponse de ces derniers, j'utilise les éléments suivants avec succès. Le facteur d'échelle dans cet exemple est 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)

Notez que j'ai supprimé le code qui bascule l'aperçu, car je préfère le faire manuellement, et cela peut prendre un certain temps s'il y a beaucoup de fragments à prévisualiser. Ce code ajuste uniquement l'échelle des fragments prévisualisés, de sorte que la prochaine fois qu'ils seront affichés à l'aide C-c C-x C-l, ils auront une taille appropriée qui correspond au texte.

marque
la source
Le codage en dur est-il nécessaire?
T. Verron
@ T.Verron le facteur d'échelle affecte la taille du fragment aperçu par rapport à la taille du texte. Le rapport entre ces deux dépend probablement de la police que vous utilisez, et éventuellement du dpi de votre écran. Il peut être possible d'automatiser le calcul d'un facteur d'échelle, mais je préfère simplement jouer avec lui jusqu'à ce qu'il me semble. Notez que le "facteur d'échelle codé en dur" n'est pas le même que le facteur d'échelle du texte, qui change automatiquement lorsque vous zoomez sur votre texte.
Mark
Oh, ok, en effet je pensais que ce serait le facteur de zoom. Pardon!
T. Verron
0

C'est déjà intégré si vous utilisez texfrag-modedans Orgmode au lieu de la prise en charge intégrée des fragments LaTeX d'Orgmode.

Régénérez simplement les fragments LaTeX avec C-c C-p C-daprès avoir changé la taille avec C-x C-+ C-+ .... La taille des fragments LaTeX correspondra à la taille du texte environnant.

Taille normale du texte:

Taille normale du texte

Après avoir appuyé sur C-x C-+ C-+ C-xet C-c C-p C-d:

entrez la description de l'image ici

Sidenote: Avec la dernière version de texfrag, vous pouvez également l'activer texfrag-show-last-mode. Avec ce mode mineur activé, Texfrag affiche le dernier fragment LaTeX rendu comme poignée si vous modifiez la formule:

texfrag-show-last-mode

Tobias
la source