2011-07-14 10 views
3

定義:ラテックスコードで列ベクトルでアクセントを交換し

df <- data.frame(name=c("México","Michoacán"),dat=c(1,2)) 

S。T.

> df 
     name dat 
1 México 1 
2 Michoacán 2 

私はxtableアクセント付き文字を使用して.texファイルに、この表を印刷は驚くことではありませんこれは、文字化けします。

私はとアクセントを交換したいと思いますLatex適切なフォーマット例:

> df 
    name dat 
1 M\'{e}xico 1 
2 Michoac\'{a}n 2 

実際のデータセット内の多くの異なったアクセントが異なる文字と名前が、アクセントの同じタイプのすべて(すなわちフォワードスラッシュ)がありますのでご注意くださいので、\'{.}で変更する必要があるのは、ドットの代わりの文字だけです。

1人の読者の提案をしようとして私は次のようでした:これは必要とされていないものを

% latex table generated in R 2.13.1 by xtable 1.5-6 package 
% Fri Jul 15 13:19:17 2011 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{rlr} 
    \hline 
& name & dat \\ 
    \hline 
1 & M$\backslash$'\{e\}xico & 1.00 \\ 
    2 & Michoacán & 2.00 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 

:私はメモ帳でrTables.texファイルを開い

> df <- data.frame(name=c("México","Michoacán"),dat=c(1,2)) 
> df 
     name dat 
1 México 1 
2 Michoacán 2 
> df$name <- sub("é", "\\\\'{e}", df$name,) 
> df 
     name dat 
1 M\\'{e}xico 1 
2 Michoacán 2 
> capture.output(
+  print(xtable(df)), 
+  file = "../paper/rTables.tex", append = FALSE) 

答えて

1

私はこの問題は、このような場合は、LaTeXに奇妙な文字を変換するxtableの試みの多くを求めているということだと思います。次のようにsanitize.text.functionをオーバーライドしてみてください。私のシステムの出力に

print(xtable(df),sanitize.text.function=function(x){x}) 

この:

% latex table generated in R 2.13.0 by xtable 1.5-6 package 
% Fri Jul 15 10:30:00 2011 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{rlr} 
    \hline 
& name & dat \\ 
    \hline 
1 & M\'{e}xico & 1.00 \\ 
    2 & Michoacán & 2.00 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 

それは他のLaTeXマークアップはこれを行うことによって破壊することができることであるかもしれない、しかし、そのために注意してください。

+0

感謝します。魅力のように働きました! – Fred

2

stringrパッケージを使用し、各タイプのアクセント付き文字を1つずつ置き換えます。

library(stringr) 
df$name <- str_replace_all(df$name, "é", "\\\\'{e}") 
df$name <- str_replace_all(df$name, "á", "\\\\'{a}") 
df$name 
+0

母音だけがアクセントを持っているので、a、e、i、o、uの母音をループすることができます – Fred

+0

提供されている例で動作することをお勧めします。しかし、私はサードパーティが提供するデータベースを使用していますが、アクセントは別の方法でコード化する必要がありますので、何も置き換えないようにしなければなりません:-(エンコードを決定してそれをどう扱うか考えてみてください) – Fred

+0

実際にはうまくいかず、 – Fred