2015-09-19 4 views
2

Я очень новичок в Latex, и я пытаюсь создать граф с надписью на рисунке.Почему я не могу использовать fig.cap - Latex через Sweave + Knitr

Теперь, когда я пытаюсь добавить fig.cap в куске товарной позиции (второй кусок) Я получаю ошибку

Latex error: Not in outer par mode

Мой код

<<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) 

} 

Почему это происходит и как это можно решить?

ответ

2

Вы должны опустить \begin{figure} (не показано в вашем MWE) и \end{figure} из вашего файла Sweave; при указании fig.cap они генерируются автоматически knitr (и избыточно, в случае вашего MWE, что приводит к ошибке).

Если необходимо указать другие параметры LaTeX фигуры, в разделе «земля» в knitr chunk options documentation: в частности, если вы хотите использовать положение «H», используйте fig.pos="h" в параметрах куска, как показано

fig.pos : (''; character) a character string for the figure position arrangement to be used in \begin{figure}[fig.pos]

+0

Ahh. Но как я могу указать, где будет фигурировать цифра? Потому что мне нужен [h] («здесь»), который появляется после \ {figure}. – uncool

Смежные вопросы