Question

A la fin d'une enquête que j'ai mené, nous donnons des répondants une boîte ouverte pour nous ended dire tout ce que nous ne couvrons pas dans les commentaires survey.These va souvent couvrir plusieurs pages. Je connais le paquet longtable pour LaTeX et voici la solution que j'ai raillé jusqu'à:

<<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}")
@

Bien que cette solution fonctionne sur le plan technique, il ne semble pas très poli et doit être améliorée. J'ai deux questions connexes:

  1. Conseils sanitaires de texte pour la sortie Sweave qui doit être traité comme tex. Par exemple, si quelqu'un dit Your survey is awesome & I would take more surveys for $$$ 100% of the time! les caractères spéciaux &, $, % Havok Reak lors du traitement par LaTeX. Y at-il quelque chose de plus efficace qu'une liste des appels gsub pour remplacer les caractères offensants avec quelque chose bienveillante?
  2. Suggestions pour une meilleure façon d'imprimer ces longs commentaires avec Sweave & LaTeX.
Était-ce utile?

La solution

Vous pouvez jeter un oeil à la XTABLE paquet pour créer des tables de latex, mais cela ne fonctionne pas très bien avec longtable je suppose. Vous pouvez également regarder le latex de fonction dans le package Hmisc, qui a une option « longtable » et permet de mieux contrôler la sortie.

Pour ajouter une barre oblique pour les caractères spéciaux utilisés dans Latex, vous pourriez faire quelque chose comme ceci:

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: l'utilisation de [[: punct:]] est faux, qui change aussi ponctuations et ainsi de suite. Code est corrigé. Les barres obliques inverses sont vraiment problématiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top