为什么我不能使用fig.cap - Latex通过Sweave + Knitr

时间:2015-09-19 20:35:17

标签: r latex knitr sweave

我是Latex的新手,我正在尝试创建带有图形标题的图形。

现在,当我尝试在块标题(第二块)中添加fig.cap时,我收到错误

  

乳胶错误:不在外部标准模式

我的代码

<<echo = FALSE>>= 
source("analysis.R")

repoData <- readRDS("data/repoData.rds")

  a4width<- 8.3
  a4height<- 11.7
@
\begin{figure}[h]
<<echo = FALSE, fig.width= a4width, fig.height=0.35*a4height>>=
G2(repoData)
@
\end{figure}


## ---- G2 ----
G2 <- function(df) {
  # For inflation graph  
  plot <- ggplot(df, aes(x = Month, y = Percent)) +

    geom_line(colour = "firebrick") +
    xlab("") +
    ylab("Repo rate") +
    theme_classic() + 
    theme(axis.title.y = element_text(vjust = 1))

  return(plot)

}

为什么会发生这种情况?如何解决?

1 个答案:

答案 0 :(得分:2)

您应该从Sweave文件中省略\begin{figure}(未在MWE中显​​示)和\end{figure};当您指定fig.cap时,knitr会自动生成它们(对于您的MWE,冗余地会导致错误)。

如果您需要指定其他LaTeX图形选项,请参阅knitr chunk options documentation的“Plot”部分:特别是,如果您想使用位置“h”,请在块选项中使用fig.pos="h" ,如

所示
  

fig.pos :('';字符)要在\begin{figure}[fig.pos]

中使用的数字位置排列的字符串