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

时间:2013-12-10 09:40:16

标签: r knitr

使用knitr将.Rnw文档编译为pdf,out.width选项无法重置块中输出文本的宽度。 enter image description here

如何将输出文本保留在具有背景颜色的区域中?

1 个答案:

答案 0 :(得分:4)

PDF中的文本输出宽度始终是一个痛苦的问题。确保一切适合a page并不容易。两种可能的通用解决方案(如果必须使用LaTeX / PDF):

  1. 在LaTeX中使白色边距变小,例如

    \usepackage{geometry}
    \geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=3cm,rmargin=3cm}
    
  2. 使R中的文本输出更窄,例如

    options(width = 60)
    
  3. 请注意,这些解决方案无法保证正常工作,因为您无法确定文本输出的宽度,并且某些输出函数不符合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可以包含逐字输出,但这也会导致输出难看。例如,如果R的自然输出为此(假设两条线太宽):

    text output wrapped by R
    and then wrapped by LaTeX
    

    LaTeX包装可以将其转为:

    text output wrapped
    by R
    and then wrapped by
    LaTeX
    

    对于显示列联表的具体应用,我的建议是转置表格(t(table(...)))并打印出来。