使用knitr编译为pdf时如何控制输出宽度?

3
使用knitr将.Rnw文档编译为pdf时,通过out.width选项不能重设代码块输出文本的宽度。 如何使输出的文本保持在具有背景颜色的区域中?
1个回答

4

在PDF中,文本输出的宽度总是一个令人头痛的问题。很难确保所有内容都适合一页上。如果必须使用LaTeX/PDF,则有两种可能的通用解决方案:

  1. make the white margin smaller in LaTeX, e.g.

    \usepackage{geometry}
    \geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=3cm,rmargin=3cm}
    
  2. make the text output narrower in R, e.g.

    options(width = 60)
    
请注意,这些解决方案并不能保证有效,因为您永远无法确定文本输出的宽度,而且某些输出函数不遵守width选项。例如,使其工作几乎是不可能的:
cat('This is a long long long long long long long long long long long long long long long long long long long long long long long long string. Haha.\n')

有一些LaTeX包,例如listings,可以包装verbatim输出,但这也可能导致丑陋的输出。例如,如果R的自然输出是这样的(假设这两行太宽):

text output wrapped by R
and then wrapped by LaTeX

LaTeX的换行可以转化为以下形式:

text output wrapped
by R
and then wrapped by
LaTeX

针对您展示列联表的具体应用,我的建议是将表格进行转置(t(table(...))),然后在屏幕上打印出来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接