是否有通用方法来定义
org-mode
中链接的图像的大小(以百分比或像素为单位)?
假设我的
.org
文件中有以下链接:
[[~/images/example.jpg]]
这个 JPG 太大了,所以如果我将其导出为 HTML 或 LaTeX,或者使用
C-c C-o i在
org-mode
中打开它,将只能看到图像的一小部分。
根据 Jacobo 的评论,将以下内容添加到您的 init.el 文件中:
(setq org-image-actual-width nil)
然后在 org-mode 下,您可以按照以下示例所示在每个 JPG、PNG 和 SVG 前面调整每个内嵌图像的大小。
#+ATTR_ORG: :width 100
[[~/images/example.svg]]
如果您想调整内联预览和 html 输出的大小:
#+ATTR_HTML: width="100px"
#+ATTR_ORG: :width 100
[[~/images/example.svg]]
#+ATTR_HTML: width="100px"
[[~/images/example.jpg]]
这是有关如何使用百分比调整图像大小的示例(组织模式版本 9.0.5):
#+CAPTION: Weight space
#+ATTR_HTML: :alt neural network :title Neural network representation :align right
#+ATTR_HTML: :width 50% :height 50%
https://i.stack.imgur.com/nzHSl.jpg
这是一种在 emacs Org 模式下调整图像大小以进行预览(而不是导出)的方法。通常,
+attr_html
- 这会很乏味。这可以通过配置
org-image-actual-width
来实现,如下所示:
(setq org-image-actual-width (list 550))
然后,在您的
.org
文件中,如果有
#+attr_html :width 249
[[~/images/example1.jpg]]
然后图像将以宽度 249px 显示在预览中。对于另一张未指定
+attr_*
的图像,将应用默认宽度 550px。
[[~/images/example2.jpg]]
您可以从 org-mode 源代码中的文档中看到此行为:
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 "")
对于导出到 LaTeX,如果您希望“缩放”图像(a Alioth 对 HTML 的响应),有几种方法可以选择。
相对于图像尺寸的缩放:
#+ATTR_LATEX: :scale 1.2
相对于 LaTeX 认为排版情况的缩放:
#+ATTR_LATEX: :width 0.40\linewidth
#+ATTR_LATEX: :width 0.5\textwidth