如何在组织模式下为不同的导出使用不同的图像格式?

问题描述 投票:0回答:2

我想在我的组织模式文档中包含内联图像,但我确实需要一个用于 HTML 导出的 png 和一个用于 LaTeX 导出的 pdf,以使其看起来不错。有什么办法可以表达吗?

image-processing org-mode
2个回答
5
投票

我在 irc 中得到了一个对我来说效果很好的答案。

#+ATTR_LaTeX: width=0.38\textwidth wrap placement={r}{0.4\textwidth}
#+ATTR_HTML: alt="old index mech" title="Old index mech" align="right"
#+begin_src emacs-lisp :exports results :results value raw
(case (and (boundp 'backend) backend)
  (nil "")
  (latex "[[file:img/indexing-old.pdf]]")
  (html "[[file:img/indexing-old.png]]"))
#+end_src

这会在导出时根据后端选择链接,同时仍然提供 HTML 和 LaTeX 属性。看起来很简单。


0
投票

下面带有条件的 elisp 代码适用于我,无需任何其他设置。导出为 html 时,会将交互式 iframe 导出为图像。当通过 pandoc 导出到 odt 或 docx 时,它会导出它的 png 版本。

#+BEGIN_SRC emacs-lisp :exports results :results raw
(cond 
  ((org-export-derived-backend-p org-export-current-backend 'html)
   "#+HTML: <iframe src='./media/image.html' width='100%' height='400px' frameborder='0'></iframe>")
  ((org-export-derived-backend-p org-export-current-backend 'odt)
   "[[file:./media/image.png]]")
  (t "[[file:./media/image.png]]"))
#+END_SRC

如果您想保留组织导出标题和交叉引用功能,我添加了一个虚拟图像(小透明 png):

#+CAPTION: Legend of image.
#+NAME:   fig:image
[[./media/dummy.png]]
#+BEGIN_SRC emacs-lisp :exports results :results raw
(cond 
  ((org-export-derived-backend-p org-export-current-backend 'html)
   "#+HTML: <iframe src='./media/sunburstchartgov.html' width='100%' height='400px' frameborder='0'></iframe>")
  ((org-export-derived-backend-p org-export-current-backend 'odt)
   "[[file:./media/sunburstchartgov.png]]")
  (t "[[file:./media/sunburstchartgov.png]]"))
#+END_SRC
© www.soinside.com 2019 - 2024. All rights reserved.