使用knitr垂直堆叠的子图形

使用knitr垂直堆叠的子图形,r,latex,knitr,subfigure,R,Latex,Knitr,Subfigure,我试图将两个子图形垂直堆叠,而不是在Latex文档中使用knitr并排放置。在Latex中,我通常通过在需要堆叠在另一个子块上的两个子块之间放置“\par”命令来实现这一点,但我不知道如何将该命令传递给knitr 我只能找到一个关于这个的话题。易慧给出的例子将这些数字并排放置。该线程中的最终答案实现了我的目标,但是使用了相当多的黑客攻击,所以我想知道是否有一种简单的方法可以直接将此命令传递给knitr MWE: \documentclass[a4paper]{article} \usepacka

我试图将两个子图形垂直堆叠,而不是在Latex文档中使用knitr并排放置。在Latex中,我通常通过在需要堆叠在另一个子块上的两个子块之间放置“\par”命令来实现这一点,但我不知道如何将该命令传递给knitr

我只能找到一个关于这个的话题。易慧给出的例子将这些数字并排放置。该线程中的最终答案实现了我的目标,但是使用了相当多的黑客攻击,所以我想知道是否有一种简单的方法可以直接将此命令传递给knitr

MWE:

\documentclass[a4paper]{article}
\usepackage[font=footnotesize]{subfig}
\开始{document}
=
图书馆(GG2)
图书馆(tikzDevice)

P1您可以使用非CRAN软件包实现这一点

\documentclass[a4paper]{article}
\usepackage{float}
\usepackage{suboption}
\开始{document}
=
knitr::opts_chunk$set(fig.path=“figures/”)
图书馆(oaReporting)
@
=
图书馆(GG2)
P1这在knitr1.17.19()。要在两个子图形之间添加
\par
,可以使用块选项
fig.sep='\\par'
,例如

\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, 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.sep='\\par'>>=
P1
P2
@

\end{document}
\documentclass[a4paper]{article}
\usepackage[font=footnotesize]{subfig}
\开始{document}
=
图书馆(GG2)
图书馆(tikzDevice)
P1
\documentclass[a4paper]{article} 
\usepackage{float}
\usepackage{subcaption}

\begin{document} 

<<setup, include=FALSE>>=
knitr::opts_chunk$set(fig.path="figures/")
library(oaReporting)
@

<<GeneratePlot>>=
library(ggplot2)
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()
path1 <- createPlot(P1, file="./figures/P1.pdf")
path2 <- createPlot(P2, file="./figures/P2.pdf")
captions <- c("P1", "P2")
@

<<results="asis", fig.keep="none">>=
insertFigures(paths = c(path1, path2), captions=captions,
              generalCaption = "P1 and P2",
              generalLabel = "fig:P1andP2",
              posMultipleFig = "H",
              nCol = 1, 
              width = 0.7)
@

\end{document}
\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, 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.sep='\\par'>>=
P1
P2
@

\end{document}