我试图在 Latex 文档中使用 knitr 将两个子图垂直堆叠而不是并排放置。在 Latex 中,我通常通过在两个需要相互堆叠的子浮点之间放置一个 '\par' 命令来做到这一点,但我不知道如何将该命令传递给 knitr。
我只能找到一个关于此的主题,Subfigures or Subcaptions with knitr?. Yihui 给出的例子将数字并排放置。该线程中的最终答案实现了我的目标,但是使用了相当多的黑客攻击,所以我想知道是否有一种简单的方法可以将此命令直接传递给 knitr?
MWE:
\documentclass[a4paper]{article}
\usepackage[font=footnotesize]{subfig}
\begin{document}
<<GeneratePlot>>=
library(ggplot2)
library(tikzDevice)
P1 <- ggplot(data=mpg, aes(x=displ, y=hwy, colour=factor(cyl)))+
geom_line()
P2 <- ggplot(data=mpg, aes(x=displ, y=hwy, colour=factor(cyl)))+
geom_point()
@
<<fig1,eval=TRUE,echo=FALSE,dev='tikz', fig.width=6, fig.height=3, out.width='1\\textwidth', fig.cap='Two figures', fig.subcap=c('Top','Bottom'), fig.show='asis', fig.pos='!htpb', fig.align='center', dependson='GeneratePlot'>>=
P1
P2
@
\end{document}
我也尝试在与输出相同的块中创建绘图对象,但这会产生相同的结果,并且在我的原始文档中,绘图对象是作为更大块的一部分生成的,因此它将具有与 MWE 相同的结构.