長いテキスト文字列を印刷 LaTeX / Sweave
質問
私が実施したアンケートの最後に、アンケートでカバーできなかった内容を記入していただく自由回答ボックスを回答者に渡します。これらのコメントは多くの場合、数ページに及びます。私はよく知っています longtable
LaTeX 用のパッケージであり、私がモックアップしたソリューションは次のとおりです。
<<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 つあります。
- として扱われる Sweave 出力のテキスト衛生化のヒント
tex
. 。たとえば、誰かがこう言ったらYour survey is awesome & I would take more surveys for $$$ 100% of the time!
特殊文字&, $, %
処理中に大混乱を引き起こすLaTeX
. 。のリストより効率的なものはありますかgsub
不快なキャラクターを慈善的なものに置き換えるよう呼びかけていますか? - これらの長いコメントを印刷するより良い方法の提案
Sweave & LaTeX
.
解決
あなたは、ラテックステーブルを作成するためのパッケージxtableを見てみることができ、それはlongtable Iの推測では非常にうまく機能しません。また、オプションの「longtable」を持ち、出力をより細かく制御することができますパッケージHmisc、関数ラテックスを見てみます。
ラテックスで使用される特殊文字のスラッシュを追加するには、このような何かを行うことができます
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:[]]を使用すると、それはまた、句読点を変更するというように、間違っています。コードが修正されます。バックスラッシュは本当に問題がある。
所属していません StackOverflow