üzerinden Sweave başlatılırken UTF-8 kodlaması tanınmadı. Mac OS X 10.7.3'te R 2.14.0 ile birlikte Emacs 24 ile çalışıyorum. Ben Sweave ile çalışmak için Benim .emacs
Emacs, R, Sweave: Emacs
\documentclass[
paper=a4,% 210mm × 297mm
pagesize% write page size to dvi
]{article}
\usepackage[american]{babel}
\usepackage{fancyvrb}
\usepackage[utf8]{inputenc}
\SweaveOpts{engine=R}
\SweaveOpts{pdf=TRUE}
\begin{document}
Some text
<<>>=
sessionInfo()
@
\end{document}
içeren
foo.Rnw
bir dosya var şuna benzer:
\documentclass[
NA
pagesize% write page size to dvi
]{article}
\usepackage[american]{babel}
\usepackage{fancyvrb}
\usepackage[utf8]{inputenc}
\usepackage{Sweave}
\begin{document}
Some text
\begin{Schunk}
\begin{Sinput}
> sessionInfo()
\end{Sinput}
\begin{Soutput}
R version 2.14.0 (2011-10-31)
Platform: x86_64-apple-darwin11.2.0/x86_64 (64-bit)
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_2.14.0
\end{Soutput}
\end{Schunk}
\end{document}
:
.tex
dosya şuna benzer
(add-hook 'Rnw-mode-hook
(lambda()
(add-to-list 'TeX-command-list
'("Sweave" "R CMD Sweave %s"
TeX-run-command nil t :help "Run Sweave") t)
(add-to-list 'TeX-command-list
'("Stangle" "R CMD Stangle %s"
TeX-run-command nil t :help "Run Stangle") t)
(setq TeX-command-default "Sweave")))
ben Sweave
seçim sonra C-c C-c
ve kullanırsanız,
Gördüğünüz gibi, AS0II olmayan karakterleri içeren foo.Rnw'nin ikinci satırı ×
, NA
ile değiştirilmiştir. Bu R
çalışır (ayrıca locale: [1] C
çıktısını gördüğü çalışmalardır yerelleşme ile ilgisi var olduğunu anlamaya başladı. Ben de formda export LC_MESSAGES="en_US.UTF-8"
açıklamalarını içerebilir benim ben de mükemmel R CMD Sweave foo.Rnw
kullanabilirsiniz .bashrc
R
doğru locale
alır böylece. terminalinden (tabii ki .bashrc
yükler ve böylece locale
'u doğru şekilde ayarlar) Soru: Emacs üzerinden çalışabilirim, böylece C-c C-c Sweave
üzerinden Sweave çalıştırabilir miyim? .bashrc
, ancak Emacs tarafından verilen R CMD Sweave
numaralı bağlantı noktasından çalıştırdığımla aynı yerelleştirmeyle çalıştığımı nasıl garanti edebilirim?
Bu soruna birkaç ileti buldum, ancak Mac'ler ve Emacs içinden çözüm bulunamadı. Yine, R CMD Sweave foo.Rnw
'u terminalden (.bashrc
'daki ayarlarımdan dolayı) mükemmel bir şekilde çalıştırabileceğime dikkat edin; bu yazıların çoğu bu sorunu ele alır - sadece Emacs içinden çalışmaz (oldukça can sıkıcıdır).
GÜNCELLEME:
Benim ~/.bashrc
içerir:
export LC_COLLATE="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_MONETARY="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
Yihui tavsiyesine uyarak, ben benim ~/.Rprofile
aşağıdaki koymak:
invisible(Sys.setlocale("LC_COLLATE", "en_US.UTF-8"))
invisible(Sys.setlocale("LC_CTYPE", "en_US.UTF-8"))
invisible(Sys.setlocale("LC_MONETARY", "en_US.UTF-8"))
invisible(Sys.setlocale("LC_TIME", "en_US.UTF-8"))
invisible(Sys.setlocale("LC_MESSAGES", "en_US.UTF-8"))
Bu sorunu çözdü.
Tüm belgelerinizin UTF8'de kodlandığından eminseniz ''/.Rprofile' 'nizde' Sys.setlocale() 'işlevini kullanabilirsiniz (bununla birlikte kesinlikle önermiyorum). Kodlama sorunları zor. Knitr paketimin bu durumda nasıl davrandığını merak ediyorum (anlayamadığım bir Mac'im yok). –
Çok teşekkürler, Yihui. Yukarıdaki ** UPDATE ** 'den görebileceğiniz gibi, bu problemi çözdü. –
@MariusHofert: şimdi çözülse bile: '' Sweave ('foo.Rnw', encoding = "utf8") 'yardım? – cbeleites