在knitr中,如何使用Latex的\textwidth设置图形宽度?

10

我尝试了以下方法来使用knitr和LaTeX设置图像宽度:

\documentclass{paper}
\begin{document}
<<fig.width=\textwidth>>
x = runif(1000)
plot(x)
@
\end{document}

然而,我收到以下错误:

<to be read again> 
                >
l.54 <<fig.width=\textwidth>
                        >

我做错了什么?

2个回答

14

fig.width选项应为数字,以设置图形本身的大小。要控制 LaTeX 显示图形的方式,请使用 out.widthout.height 选项。这些选项需要是字符串,并且需要转义反斜杠。

代码块

<<plot1, fig.width = 5, fig.height = 5, out.width = "0.48\\textwidth">>=
@

此代码将生成一个占用最终文档48%文本宽度的5英寸×5英寸图形。也就是说,plot1-1.pdf文件是一个5英寸×5英寸的图形,LaTeX代码为:

\includegraphics[width=0.48\textwidth]{figure/plot1-1}

将被放置在生成的 .tex 文件中。


0

fig.width 的值需要是 R 在设置图形设备时可以使用的内容。它不知道 \textwidth 最终会变成什么样子,所以这个方法行不通。你需要固定一个值,通常是英寸(但对于某些设备可能是像素)。

\textwidth 可以被 LaTeX 用来排版你的图形,将图形调整为所需大小。要使其成为默认设置,请使用

\setkeys{Gin}{width=\textwidth}

在R代码块之外。(假设您正在LaTeX中使用graphicx包;我忘记knitr是否会自动执行此操作。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接