是否有一种通用的方法可以定义在org-mode
中链接的图像的大小(以百分比或像素为单位)?
比如我在我的.org
文件中有以下链接:
[[~/images/example.jpg]]
这个 JPG 文件太大了,所以如果我将它导出为 HTML 或 LaTeX,或者在 org-mode
中使用 C-c C-o i 打开它,只会看到图像的一部分。
(setq org-image-actual-width nil)
#+ATTR_ORG: :width 100
[[~/images/example.svg]]
#+ATTR_HTML: width="100px"
#+ATTR_ORG: :width 100
[[~/images/example.svg]]
#+ATTR_HTML: width="100px"
[[~/images/example.jpg]]
#+ATTR_HTML: width="0.3"
如果我理解正确的话,应该会按比例缩小0.3倍(或0.003= 0.3%?),但是这也没有任何作用。 :-/ - user1323995(setq org-image-actual-width nil)
。在 org-mode 邮件列表的此帖子中解释了其他可能的值和行为。 - Jacobo de Vera这是一个关于如何使用百分比调整图像大小的示例(Org mode版本9.0.5):
#+CAPTION: Weight space
#+ATTR_HTML: :alt neural network :title Neural network representation :align right
#+ATTR_HTML: :width 50% :height 50%
https://istack.dev59.com/nzHSl.webp
在Emacs Org模式下,有一种预览(而不是导出)调整图像大小的方法。
+attr_html
,那样会很繁琐。可以通过如下配置org-image-actual-width
来实现:
(setq org-image-actual-width (list 550))
然后,在你的.org
文件中,如果你有
#+attr_html :width 249
[[~/images/example1.jpg]]
如果指定了+attr_*
,则图像将以249像素的宽度显示在预览中。对于另一张没有指定+attr_*
的图像,默认宽度为550像素。
[[~/images/example2.jpg]]
When set to a number in a list, try to get the width from any
#+ATTR.* keyword if it matches a width specification like
#+ATTR_HTML: :width 300px
and fall back on that number if none is found.
我很难理解“列表中的数字代表什么”,所以我查看了实现代码,确实,像 (list 550)
这样的内容是可以运行的。
对于 LaTeX,如果要删除默认的 width=.9\linewidth
,请将 org-latex-image-default-width
设置为空字符串。这样,图像将具有其自然尺寸。
要在运行时执行此操作,请使用 set-variable
emacs 命令。或者要永久设置此变量,请在您的 init.el 中添加以下行:(setq org-latex-image-default-width "")
(setq org-latex-image-default-width "1.0\\linewidth")
。 - lab对于导出到LaTeX,如果你希望像阿里奥斯在HTML中的回答那样“缩放”图像,有几种方法可用。
相对于图像尺寸进行缩放:
#+ATTR_LATEX: :scale 1.2
相对于LaTeX认为正在进行排版的内容进行缩放:
#+ATTR_LATEX: :width 0.40\linewidth
#+ATTR_LATEX: :width 0.5\textwidth