如何在组织模式下与缓冲文本同时放大乳胶碎片?


12

org-mode在emacs中使用,但是我认为这个问题也与auctex用户有关。

org-mode可以显示乳胶片段,作为手动演示。

但是:这些片段(大多数是数学公式)的大小似乎恒定。当我键入C-x C-+C-x C-- 缓冲区文本大小更改时。如何更改缓冲区的片段大小?

(我知道我可以使用来放大或缩小碎片org-format-latex-options,但这是永久性的。我想像文本一样更改碎片(png文件)的大小。)

Answers:


4

更新的答案:(感谢您的反馈)

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

旧答案:

这是一个开始:钩住text-scale-mode-hook并进行相应更新org-format-latex-options

(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)))
(添加挂钩'text-scale-mode-hook'update-org-latex-fragments)

text-scale-mode-amount不过,可能需要比例因子...


org-toggle-latex-fragment在最新的组织模式下无功能。
Leu_Grady

@ user3173715您的最新消息不是我的最新消息……
这是

您正在使用开发组织模式吗?
Leu_Grady'2

@ user3173715使用org-preview-latex-fragment(自2014年8月起已过时)
这是

org-toggle-latex-fragment从此过时了org 9.3。使用org-latex-preview代替。而且,至少在我这边,第一个org-toggle-latex-fragment应该'(64)代替。'(64)清除缓冲区中的图像,然后'(16)显示它们(请参阅doc)。
Firmin Martin

2

基于此问题的答案,我正在成功地使用以下内容。在此示例中,比例因子为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)

请注意,由于我更喜欢​​手动进行操作,因此我删除了切换预览的代码,并且如果要预览的片段很多,则可能需要一段时间。此代码仅调整预览片段的比例,以便在下次使用时显示C-c C-x C-l它们,它们将具有与文本匹配的适当大小。


硬编码是必要的因素吗?
T. Verron

@ T.Verron比例因子会影响预览片段相对于文本大小的大小。两者之间的比例可能取决于您使用的字体,还可能取决于屏幕的dpi。可能可以自动执行比例因子的计算,但是我更喜欢摆弄它,直到它符合我的喜好为止。请注意,“硬编码比例因子”与文本比例因子不同,后者在缩放文本时会自动更改。
Mark

哦,好的,确实,我认为这将是缩放因子。抱歉!
T. Verron 2015年

0

如果您texfrag-mode在Orgmode中使用它而不是Orgmode的内置LaTeX片段支持,则该功能已经内置。

使用C-c C-p C-d更改大小后,只需重新生成LaTeX片段即可C-x C-+ C-+ ...。LaTeX片段的大小将适合周围文本的大小。

普通文字大小:

普通文字大小

C-x C-+ C-+ C-x和之后C-c C-p C-d

在此处输入图片说明

旁注:使用texfrag的最新版本,您还可以激活texfrag-show-last-mode。激活该次要模式后,如果您编辑公式,则Texfrag会将最后渲染的LaTeX片段显示为手柄:

texfrag-show-last-mode

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.