我有一个非常简单的 sweave 块,包含两行,如下所示:
<<results=verbatim>>==
quantile(foo$bar)
@
我怎样才能使这个元素居中?我尝试过拥抱这个块,但\begin{center}
没有成功。
答案1
默认情况下,逐字环境的宽度等于文本宽度。因此您无法将其居中:行尾的空格包含在行内。
幸运的是,内部Sweave.sty
使用了fancyvrb
包。 Sweave
定义了三个环境,分别为输入、输出和代码,使用fancyvrb
方式如下:
\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl}
\DefineVerbatimEnvironment{Soutput}{Verbatim}{}
\DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl}
现在fancyvrb
有几种环境。其中一种对您有帮助的环境是BVerbatim
:将文本放入一个框中,该框的宽度默认等于文本最长行的宽度。生成的框可以居中。
因此,以下内容有效:
\documentclass{article}
\usepackage{Sweave}
\pagestyle{empty}
\DefineVerbatimEnvironment{Soutput}{BVerbatim}{}
\begin{document}
\noindent\rule{\textwidth}{.1pt} % To show centering
\begin{center}
<<>>==
2+3
@
\end{center}
\end{document}
我们将 重新定义Soutput
为BVerbatim
,输出现在居中:
请注意,本例中只有输出居中。要使输入居中,Sinput
也请重新定义。