在 knitr 中,如何使用 Latex 中的 \textwidth 设置图形宽度
In knitr, how to set figure width with \textwidth from Latex
我尝试了以下方法来使用 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
的值需要是 R 在设置图形设备时可以使用的值。它不知道 \textwidth 会变成什么,所以这是行不通的。您需要固定一个值,通常采用以英寸为单位的尺寸(但对于某些设备可能是像素)。
\textwidth 可以在 LaTeX 排版图形时使用,将图形调整为请求的大小。要使其成为默认使用
\setkeys{Gin}{width=\textwidth}
在 R 代码块之外。 (假设您在 LaTeX 中使用 graphicx
包;我忘记 knitr
是否自动执行此操作。)
fig.width
选项应该是数字,用于设置图形本身的大小。要控制图形在 LaTeX 中的显示方式,请使用 out.width
和 out.height
选项。这些选项必须是字符串,并且您需要转义反斜杠。
区块
<<plot1, fig.width = 5, fig.height = 5, out.width = "0.48\textwidth">>=
@
将生成一个 5 英寸 x 5 英寸的图形,该图形将占最终文档文本宽度的 48%。也就是说,文件plot1-1.pdf
是一个五英寸乘五英寸的图形,LaTeX代码
\includegraphics[width=0.48\textwidth]{figure/plot1-1}
将被放置在生成的 .tex 文件中。
我尝试了以下方法来使用 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
的值需要是 R 在设置图形设备时可以使用的值。它不知道 \textwidth 会变成什么,所以这是行不通的。您需要固定一个值,通常采用以英寸为单位的尺寸(但对于某些设备可能是像素)。
\textwidth 可以在 LaTeX 排版图形时使用,将图形调整为请求的大小。要使其成为默认使用
\setkeys{Gin}{width=\textwidth}
在 R 代码块之外。 (假设您在 LaTeX 中使用 graphicx
包;我忘记 knitr
是否自动执行此操作。)
fig.width
选项应该是数字,用于设置图形本身的大小。要控制图形在 LaTeX 中的显示方式,请使用 out.width
和 out.height
选项。这些选项必须是字符串,并且您需要转义反斜杠。
区块
<<plot1, fig.width = 5, fig.height = 5, out.width = "0.48\textwidth">>=
@
将生成一个 5 英寸 x 5 英寸的图形,该图形将占最终文档文本宽度的 48%。也就是说,文件plot1-1.pdf
是一个五英寸乘五英寸的图形,LaTeX代码
\includegraphics[width=0.48\textwidth]{figure/plot1-1}
将被放置在生成的 .tex 文件中。