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



我已经尝试了以下方法来使用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>
                        >

我做错了什么?

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

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

生成一个 5 英寸乘 5 英寸的图形,该图形将占据最终文档中文本宽度的 48%。 也就是说,文件plot1-1.pdf是一个五英寸乘五英寸的图形,而 LaTeX 代码

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

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

fig.width的值必须是 R 在设置图形设备时可以使用的值。 它不知道\textwidth会变成什么,所以这是行不通的。 您需要固定一个值,通常取为以英寸为单位的大小(但对于某些设备,它可能是像素(。

LaTeX 在排版图形时可以使用 \textwidth,将图形大小调整为请求的大小。 要将此作为默认用途

setkeys{Gin}{width=textwidth}

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

最新更新