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

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 ...


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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.