Frage

Am Ende einer Umfrage, die ich durchgeführt habe, geben wir die Befragten eine am Ende offene Box uns etwas zu sagen, wir deckten oft nicht über mehrere Seiten erstrecken in den survey.These Bemerkungen werden. Ich bin mit dem longtable Paket für LaTeX vertraut und hier ist die Lösung, die ich verspottet haben:

<<results = tex>>=
cat("\\begin{longtable}{p{14cm}}\n")
cat("\\hline\n")
write.table(toBePrinted, eol = "\\\\\n", col.names = FALSE)
cat("\\hline\n")
cat("\\end{longtable}")
@

Während diese Lösung technisch funktioniert, sieht es nicht sehr poliert und muss verbessert werden. Ich habe zwei ähnliche Fragen:

  1. Text Hygiene-Tipps für Sweave Ausgabe, die als tex behandelt werden. Zum Beispiel, wenn jemand sagt, Your survey is awesome & I would take more surveys for $$$ 100% of the time! die Sonderzeichen &, $, % reak havok wenn durch LaTeX Verarbeitung. Gibt es etwas effizienter als eine Liste von gsub Anrufen, die beanstandeten Zeichen mit etwas wohlwollender zu ersetzen?
  2. Vorschläge für einen besseren Weg, um diese langen Kommentare mit Sweave & LaTeX zu drucken.
War es hilfreich?

Lösung

Sie können einen Blick auf das Paket XTABLE nehmen Latex-Tabellen für die Erstellung, aber das funktioniert nicht sehr gut mit long I guess. Alternativ Blick auf der Funktion Latex im Paket Hmisc, die eine Option „long“ und erlaubt mehr Kontrolle über die Ausgabe.

einen Schrägstrich für Sonderzeichen hinzufügen, wie in Latex verwendet, können Sie so etwas tun könnte:

add.slash <- function(x){
    where <- embed(c(1,gregexpr("[&#$%]",x)[[1]],nchar(x)+1),dim=2)
    out <- paste(apply(where,1,function(y){substr(x,y[2],y[1]-1)}),collapse="\\")
    return(out)
}

> x <- "I print $ and % and & and # and . and ! and ,"

> cat(add.slash(x),"\n")
I print \$ and \% and \& and \# and . and ! and , 

EDIT: die Verwendung von [[: punct:]] ist falsch, das ändert sich auch die Interpunktion und so weiter. Code korrigiert. Schrägstriche sind wirklich problematisch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top