knitr:fig.height在新版本中必须是数字?

时间:2015-06-16 14:32:23

标签: latex knitr rnw

我下载了一个新版本的knitr包,突然在尝试在Rnw文件中包含一个绘图时出现以下错误:

Error in options[[sprintf("fig.%s", i)]] * options$dpi : 
  non-numeric argument to binary operator
Calls: knit ... process_group.block -> call_block -> fix_options -> %n%

经过大量的实验,我发现问题出在命令fig.height上,显然它应该是数字的。此代码生成错误:

\documentclass{article}

\begin{document}

<<cat, fig.cap="dog", fig.height='\\textheight'>>=
plot(c(1, 2, 3), c(2, 1, 3))
@

\end{document}

此代码不会:

\documentclass{article}

\begin{document}

<<cat, fig.cap="dog", fig.height=6>>=
plot(c(1, 2, 3), c(2, 1, 3))
@

\end{document}

不幸的是,我不知道这个6的测量单位是什么。

此代码:

\documentclass{article}

\begin{document}

<<cat, fig.cap="dog", fig.height=6cm>>=
plot(c(1, 2, 3), c(2, 1, 3))
@

\end{document}    

产生不同的错误:

Error in base::parse(text = code, srcfile = NULL) : 
  1:44: unexpected symbol
1: alist( 'cat', fig.cap="dog", fig.height=6cm
                                           ^
Calls: knit ... withCallingHandlers -> eval -> parse_only -> <Anonymous>
Execution halted 

总而言之,似乎knitr真的期待fig.height的数值,这是中等烦人的,因为我已经在我的文档中输入了很多fig.height='\\textheight'命令(在那个日子里仍然有效)我也不知道Latex&#39; s \textheight对应的数值是什么。

有任何建议吗?

更新:我做了一些实验,结果证明你输入到fig.height的数字在Latex文件中没有出现,而是影响knitr直接生成的cat.pdf图像的尺寸。这种建议完全忽略fig.height可能是最好的策略。这仍然没有告诉我们如何在tex文档中获取[height=\textheight]

1 个答案:

答案 0 :(得分:2)

使用chunk选项out.height代替fig.height