在org里用链接 [[]] 插入图片,导出为pdf时大小会太大,从而显示不全。请问如何解决?

我在org-mode里结合表格与图片,想并排插入多个图片:

|---------------------| --------------------|
|[[./figure1.png]] | [[./figure2.png]] |

像上面那样,导出为pdf时,由于图片太大显示不全。我又不想去手动调整图片大小。请问有什么方法可以在自动调整图片大小,让导出pdf能完整显示图片?

#+caption: Example image
#+attr_latex: :width 0.9\textwidth
[[file:image.jpg]]

之类的

表格可能没有现成直接用的。一个思路是定制自己的输出模板。

把 org 中的表格:

#+begin_export my_latex_table
|---------------------| --------------------|
|[[./fig1.png]] | [[./fig2.png]] |
#+end_export

转义成如下 latex 片段。

#+begin_export latex
\begin{tabular}{|c|c|}
  \hline
  \includegraphics[width=60mm]{fig1.png} & \includegraphics[width=60mm]{fig2.png} \\
  {\small ''Emacs } &  {\small ''Emacs china}
  \\
  \hline
\end{tabular}
#+end_export

可参考这个讨论改 latex 输出函数:

https://www.reddit.com/r/emacs/comments/swvbmm/you_want_to_write_a_custom_org_backend_lets_write/

我可以通过#+attr_latex: :width 0.45\linewidth 控制图片大小。但是其必须要紧跟图片才有用。比如如下例子

在上面的例子中,第一个图片的大小可以控制,但是在表格中的两个图片大小不能控制。请问有什么办法吗?

1 个赞

这样输出HTML也是可以的吧

输出html图片会很大,但是这个问题还好说。

因为我记录了很多latex公式与图表。所在在导出html时,总会有一些公式无法显示正常。

如果对表格没有要求,可以用 latex 宏展开,不失为简单的解决办法。

#+LATEX_HEADER: \newcommand{\mytblfigtwomm}[1]{\includegraphics[width=20mm]{#1}}}
#+LATEX_HEADER: \newcommand{\mytblfigfourmm}[1]{\includegraphics[width=40mm]{#1}}}
#+LATEX_HEADER: \newcommand{\mytblfigsixmm}[1]{\includegraphics[width=60mm]{#1}}}

#+name: withdth 20mm
#+caption: withdth 20mm
|--------------------------+--------------------------|
| \mytblfigtwomm{fig1.png} | \mytblfigtwomm{fig2.png} |

#+name: withdth 40mm
#+caption: withdth 40mm
|-----------------------------+-----------------------------|
| \mytblfigfourmm{./fig1.png} | \mytblfigfourmm{./fig2.png} |

#+name: withdth 60mm
#+caption: withdth 60mm
|----------------------------+----------------------------|
| \mytblfigsixmm{./fig1.png} | \mytblfigsixmm{./fig2.png} |
4 个赞