3

私が実施した調査の最後に、回答者に自由回答ボックスを提供して、調査で取り上げていないことを教えてもらいました。これらのコメントは、多くの場合、複数のページにまたがっています。私はlongtableLaTeXのパッケージに精通しており、モックアップしたソリューションは次のとおりです。

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

このソリューションは技術的には機能しますが、それほど洗練されているようには見えず、改善する必要があります。関連する質問が 2 つあります。

  1. として扱われる Sweave 出力のテキスト サニテーションのヒントtex。たとえば、誰かがを処理するときにYour survey is awesome & I would take more surveys for $$$ 100% of the time!特殊文字が大混乱を招くと言った場合。問題のある文字を慈悲深いものに置き換えるための呼び出しのリストよりも効率的なものはありますか?&, $, %LaTeXgsub
  2. でこれらの長いコメントを印刷するためのより良い方法の提案Sweave & LaTeX
4

1 に答える 1

2

ラテックステーブルを作成するためのパッケージxtableを見ることができますが、それはlongtableではうまく機能しないと思います。または、パッケージHmiscの関数latexを見てください。この関数には、「longtable」オプションがあり、出力をより細かく制御できます。

ラテックスで使用される特殊文字にスラッシュを追加するには、次のようにします。

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 , 

編集:[[:punct:]]の使用は間違っており、句読点なども変更されます。コードが修正されました。バックスラッシュは本当に問題があります。

于 2010-08-30T14:02:58.843 に答える