【发布时间】:2012-09-14 19:27:49
【问题描述】:
是否可以使用 knitr 生成子图(带有关联的子标题)?这是一个最小的工作示例:
\documentclass{article}
\begin{document}
<<echo = FALSE, fig.cap = c("Some numbers.", "Some more numbers."), out.width = "0.5\\textwidth", fig.align = "center">>=
plot(1:10)
plot(30:100)
@
\end{document}
这会产生两个标记为图 1 和图 2 的图,并带有定义的标题(分别)。但我希望它们被标记为“图 1a”和“图 1b”,就像您可以使用 subcaption LaTeX 包一样。
我知道有一个 knitr 选项“fig.env”,但这并不能解决它(至少不使用,例如,“fig.env = 'subfigure'”)。这里有一篇关于 Sweave 的类似帖子,但解决方案是不优雅的 hack:http://texblog.org/2011/12/01/sweave-subfig-controlling-figure-size-and-placement/
【问题讨论】:
-
这在 knitr 中是完全可能的,因为您可以通过
knit_hooks$set(plot = function(x, options) {...})重新定义plot钩子并以您想要的任何方式排列图。唯一的问题是您可能需要一段时间才能理解内部结构:github.com/yihui/knitr/blob/master/R/hooks-latex.R 我在内部支持子图听起来是个好主意,您可以在这里提出功能请求:github.com/yihui/knitr/issues 谢谢! -
酷!已在 github 上请求功能 - 我看到您已经接受了挑战。