2016-03-26 74 views
4

如何在生成HTML文檔時讓我的針織.Rmd文檔不包裝代碼?每當我編我的文件,我得到的輸出類似如下:缺少R Markdown中的水平滾動條HTML代碼塊和輸出

Not what I want...

可以看到,包含cbind調用第一線纏繞。這是由以下Rmd代碼生成的。基本上,我希望看到生成的HTML文件看起來像在StackOverflow中執行的那樣(即使用水平滾動條)。

--- 
title: "Title" 
author: "Author" 
date: "March 25, 2016" 
output: html_document 
--- 

```{r} 
myveryveryveryveryverylongvariablenameanditsdataaaaaaaaaaaaaaaaaaaaaaaaaaa <- cbind(iris, iris, iris, iris, iris, iris, iris) 
head(myveryveryveryveryverylongvariablenameanditsdataaaaaaaaaaaaaaaaaaaaaaaaaaa) 
``` 

然後單獨地,我怎樣才能做到這一點在第二行的文本輸出?我試過options(width=...),但是這似乎只是將輸出打亂了。我想它也期待只是因爲它在這裏StackOverflow上(沒有包裝,用水平滾動條):

Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Length Sepal.Width Petal.Length Petal.Width 
1   5.1   3.5   1.4   0.2 setosa   5.1   3.5   1.4   0.2 setosa   5.1   3.5   1.4   0.2 setosa   5.1   3.5   1.4   0.2 
2   4.9   3.0   1.4   0.2 setosa   4.9   3.0   1.4   0.2 setosa   4.9   3.0   1.4   0.2 setosa   4.9   3.0   1.4   0.2 
3   4.7   3.2   1.3   0.2 setosa   4.7   3.2   1.3   0.2 setosa   4.7   3.2   1.3   0.2 setosa   4.7   3.2   1.3   0.2 
4   4.6   3.1   1.5   0.2 setosa   4.6   3.1   1.5   0.2 setosa   4.6   3.1   1.5   0.2 setosa   4.6   3.1   1.5   0.2 
5   5.0   3.6   1.4   0.2 setosa   5.0   3.6   1.4   0.2 setosa   5.0   3.6   1.4   0.2 setosa   5.0   3.6   1.4   0.2 
6   5.4   3.9   1.7   0.4 setosa   5.4   3.9   1.7   0.4 setosa   5.4   3.9   1.7   0.4 setosa   5.4   3.9   1.7   0.4 
+0

@jenesaisquoi,你通過CSS解決我的問題的第一部分是完美的 - 我期望這是HTML輸出的默認樣式。至於第二個,你使用'DT'包的建議可行,但只適用於'data.table'和'data.frame's。你知道一個通​​用的解決方案嗎?如果我想避免「彙總(myveryveryveryveryverylongvariantnameanditsdataaaaaaaaaaaaaaaaaaaaaaaaaaa)」輸出的文字包裝,該怎麼辦? –

+0

我認爲我們很接近 - 這讓我獲得了塊輸出的水平滾動條,但輸出文本現在全部一起運行,並且似乎沒有保持它在R控制檯中的間距和換行符。 –

回答

3

隨着從評論人一些幫助,我能拼湊出一個解決方案。有兩個步驟:

  1. 包括自定義樣式表在.Rmd YAML頭:

    css: report_styles.css

    其中包含這些樣式:

    pre, code {white-space:pre !important; overflow-x:scroll !important}

    這使得所以回顯的代碼塊將不會換行,並且它們有一個水平滾動條。這也將使瀏覽器窗口調整大小時,塊輸出不會包裝更多

  2. 現在,爲了使塊輸出最初不包裝,我們需要根據this question設置options(width=a-big-number)

+1

這可能是個人偏好,但我認爲這種行爲很適合作爲默認值。至少,我認爲(1)應該可以通過塊/全局塊選項直接訪問(如果它不是已經存在的話)。 –

+1

很好的答案!但是,設置'scroll'選項會爲所有代碼塊添加一個滾動條。我最終使用'overflow-x:auto;'因爲它只在需要時才添加滾動條。 – SimonG