如何在没有居中代码的情况下获得中心数据

时间:2011-06-18 21:36:19

标签: r latex sweave

将sweave转换为中心数据的一种方法是包含以下内容

\begin{figure}
\begin{center}
[sweave chunk]
\end{center}
\end{figure}

但是,如果要显示代码以生成可视化,则代码将以居中方式显示。有没有人知道一种光滑的方式让代码显示左对齐,同时仍然确保图形居中?如果您将图形的大小设置为3x3:

,则会出现问题
<<myplot, fig=TRUE, width=3, height=3>>=
    plot(rnorm(20), rnorm(20))        
@

对于我正在处理的项目,我需要执行100次以上的操作,并且不希望为绘图和代码创建单独的块。

1 个答案:

答案 0 :(得分:6)

也许不完全是你所追求的,但我喜欢保留我用来在图形区域之外制作图片的代码,因为我想要文本中的代码:

Blablabla if we run:
R CODE
We get the figure in Figure 1

您可以在Sweave参数中使用include=false并使用以下事实:如果您在Sweave中制作图片,则会调用pdf DOCUMENTNAME-PICTURENAME.pdf。例如,在文档foo.Rnw中:

Blablabla if we run:
<<myplot,fig=true,include=false>>=
plot(1)
@
We get the plot in Figure \ref{myplot}

\begin{figure}
\begin{center}
\includegraphics{foo-myplot}
\end{center}
\label{myplot}
\caption{This is my plot!}
\end{figure}

这应该让你的代码在正在运行的文本和图中左对齐LaTeX放置它(如果你想要的话)。


编辑:

运行你的例子确实让我在与普通文本相同的边缘处使用左对齐代码:

\documentclass{article}
\usepackage{Sweave}
\begin{document}
\begin{figure}
\centering
<<myplot, fig=TRUE, width=3, height=3>>=
    plot(rnorm(20), rnorm(20))        
@
\end{figure}
\end{document}