在 Overleaf 上的 LaTeX 文档中制作几个 R 图。每个 R 图都放置在一个figure
环境中:
\begin{figure}[h]
\centering
<<>>=
curve(dnorm(x))
@
\caption{normalPlot}
\label{fig:label}
\end{figure}
问题:
- 每个图的图边距都太宽。需要减少周围的空白,而不是像
par(mar=c(1,1,1,1)
每个块那样通过手动代码。 - 任何块中均无代码回显。需要
echo=F
跨块进行全局切换。
尝试使用dev.args
但 Overleaf 可能还不支持它。LaTeXdev.args
也有一些错误;knitr 可能已经修复了它们但也许它们没有在 Overleaf 的存储库中更新。
有什么解决办法吗?还有其他方法吗?
答案1
\documentclass[twocolumn]{article}
\usepackage{lipsum,geometry}
\begin{document}
<<options,include=FALSE>>=
knitr::opts_chunk$set(echo = FALSE, fig.dim = c(5, 3), fig.pos="h",out.width = "106%", dev='tikz')
@
See fig. \ref{labelA} and \ref{labelB}. \lipsum[1][1]
<<figA, fig.cap="normalPlot \\label{labelA} " >>=
curve(dnorm(x))
@
\lipsum[2][1-3]
<<figB, fig.cap="simplePlot \\label{labelB} " >>=
plot(jitter(1:40,factor=5,amount=5),xlab="foo",ylab="bar")
@
\lipsum[3-8]
\end{document}