2017-07-06 5 views
2

Ich schreibe etwas Kursmaterial mit Rmarkdown und dem Tufte-Paket. Einige der R-Ausgaben, die ich im Dokument haben möchte, haben jedoch eine Breite, die größer ist als die Breite des Handouts (siehe die Zusammenfassung eines IM-Modells im Beispiel unten). Ich kann es nicht schaffen, dass diese R-Ausgaben die volle Breite der Seite einnehmen (ich möchte etwas ähnliches wie das fig.fullwidth Chunk-Argument für Zahlen haben).R ergibt volle Breite mit Rmarkdown/tufte_handout

ich weiß, gibt es eine fullwidth Umwelt, sondern es in dieser Umgebung eine R Chunk mit verhindert pandoc die pdf aufgrund des führenden Hashes vor R-Ausgang (Entfernen dieses Hashes durch Angabe des chunk Arguments comment=NA eine PDF erzeugen zu bauen, aber die Formatierung der R-Ausgabe ist verloren gegangen).

Gibt es eine Möglichkeit, R-Ausgabe volle Breite zu haben?

Danke für Hilfe.

Unten ist ein minimales Beispiel

--- 
title: "My minimal example" 
link-citations: yes 
output: 
    tufte::tufte_handout: 
    latex_engine: xelatex 
--- 

```{r setup, include=FALSE} 
library(tufte) 
# invalidate cache when the tufte version changes 
knitr::opts_chunk$set(tidy = FALSE, cache.extra = 
packageVersion('tufte')) 
options(htmltools.dir.version = FALSE) 
``` 

This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. 

```{r lm} 
model = lm(dist~speed,data=cars) 
summary(model) 
``` 

\begin{fullwidth} 
This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. This is a fullwidth. paragraph. 
\end{fullwidth} 

Antwort

0

Dies ist meine erste Antwort hier und mehr eine Ad-hoc-Lösung als eine echte fullwidth Lösung für die Ausgabe.

Ich konfrontiert dieses Problem auch und löste es schließlich durch Verkettung der Ausgabe mit cat(). Ich habe dann versucht, es allgemeiner zu machen, indem ich capture.output() benutze, aber leider habe ich das nicht zur Arbeit gebracht.

Dies ignoriert vollständig die Hauptbreite, aber leider ist es keine optimale Lösung, da er auch nicht die volle Seitenbreite nicht respektiert und erfordert, dass Sie die Ausgabe in copy-paste:

--- 
title: "My minimal example" 
output: tufte::tufte_handout 
--- 

# Not fullwidth: 
```{r, echo = FALSE} 
model <- lm(dist ~ speed, data = cars) 
summary(model) 
``` 

# Not fullwidth: 
```{r, echo = FALSE} 
out <- capture.output(summary(model)) 
cat(out, sep = "\n") 
``` 

# Fullwidth: 
```{r, echo = FALSE} 
cat("Call: 
lm(formula = dist ~ speed, data = cars) 

Residuals: 
    Min  1Q Median  3Q  Max 
-29.069 -9.525 -2.272 9.215 43.201 

Coefficients: 
      Estimate Std. Error t value Pr(>|t|)  
(Intercept) -17.5791  6.7584 -2.601 0.* 
speed   3.9324  0.4155 9.464 1.49e-12 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 15.38 on 48 degrees of freedom 
Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438 
F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12") 
``` 

Wenn jemand ein Vorschlag, die capture.output() Version arbeiten zu lassen, lass es mich wissen.