【问题标题】:Getting Sweave code chunks to stay inside page margins?让 Sweave 代码块保持在页边距内?
【发布时间】:2012-02-13 00:33:54
【问题描述】:

有时我会制作一个比页面边距更长的 R 代码块(在 Sweave 中)。一旦发生这种情况,有没有办法强制它“转到下一行”?

这是一个简单的例子:

\documentclass[a4paper]{article}

\usepackage{Sweave}

\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em,
                                              frame=single}
\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em,
                                              frame=single}
\title{Sweave with boxes}

\begin{document}
\maketitle

<<echo=FALSE>>=
options(width=60)
@

Here is an example of a code chunk followed by an output chunk,
both enclosed in boxes.

<<>>=
print(rnorm(99))
@


<<>>=
print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
@


\end{document}

【问题讨论】:

  • 我认为knitr 应该可以解决这个问题...我不是很确定,但请尝试一下。它现在在 CRAN 上。
  • 嗨,alexa - 我有一种感觉,我希望在这一点上避免它......
  • 在类似的情况下,我使用包列表和 \lstset{breaklines=true}
  • @TalGalili:嗨,只是好奇:这是一个 sweave 问题还是 LaTeX 逐字环境的问题?在这种情况下,可以尝试在乳胶中解决这个问题 (tex.stackexchange.com)。
  • 这是 Tal 的 tex.stackexchange 帖子的链接:tex.stackexchange.com/questions/41471/…

标签: r latex tex sweave


【解决方案1】:

这是一个困难且极端的情况,因为你在a 之间没有空格,所以 LaTeX 可能无法换行。如果您确实有空格,knitr 将能够生成带有用tidy=TRUE, highlight=TRUE 包裹的长行的输出(我认为,如果您设置了keep.source=FALSE,Sweave 也会如此)。

【讨论】:

    猜你喜欢
    • 2014-10-25
    • 2017-01-02
    • 1970-01-01
    • 2019-04-13
    • 2015-06-03
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多