On 4/16/2009 10:29 AM, Угодай n/a wrote:
I want write article by russian language using Sweave. For cyrillic text
LaTeX use T2A encoding
\usepackage[T2A]{fontenc}
But in Sweave.sty we find:
\RequirePackage[T1]{fontenc}
It is source of critical problem.
For example Rnw file
$ cat estimation.Rnw
\documentclass[A4paper]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\begin{document}
Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° попытаемÑÑ Ð°Ð¿Ñ€Ð¾ÐºÑимировать
результаты нормативной завиÑимоÑти.
$$
\Delta T_k = 800(C_p + 0.07C_{Cu})F^{1/3}
$$
\end{document}
will be translate to this estimate.tex
$ R CMD Sweave estimation.Rnw
$ cat estimate.tex
\documentclass[A4paper]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\usepackage{Sweave}
\begin{document}
Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° попытаемÑÑ Ð°Ð¿Ñ€Ð¾ÐºÑимировать
результаты нормативной завиÑимоÑти.
$$
\Delta T_k = 800(C_p + 0.07C_{Cu})F^{1/3}
$$
\end{document}
and if I try to compile to pdf, LaTeX don't do it by reason
$ pdflatex estimation.tex
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
%&-line parsing enabled.
entering extended mode
(./estimation.tex
LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang,
noh
yphenation, croatian, ukrainian, russian, bulgarian, czech, slovak, danish,
dut
ch, finnish, basque, french, german, ngerman, ibycus, greek, monogreek,
ancient
greek, hungarian, italian, latin, mongolian, norsk, icelandic, interlingua,
tur
kish, coptic, romanian, welsh, serbian, slovenian, estonian, esperanto,
upperso
rbian, indonesian, polish, portuguese, spanish, catalan, galician, swedish,
loa
ded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2005/09/16 v1.4f Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo))
(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty
(/usr/share/texmf-texlive/tex/latex/cyrillic/t2aenc.def)
(/usr/share/texmf-texlive/tex/latex/cyrillic/t2acmr.fd))
(/usr/share/texmf-texlive/tex/latex/base/inputenc.sty
(/usr/share/texmf-texlive/tex/latex/base/utf8.def
(/usr/share/texmf-texlive/tex/latex/base/t1enc.dfu)
(/usr/share/texmf-texlive/tex/latex/base/ot1enc.dfu)
(/usr/share/texmf-texlive/tex/latex/base/omsenc.dfu)
(/usr/share/texmf-texlive/tex/latex/base/t2aenc.dfu)))
(/usr/share/texmf-texlive/tex/generic/babel/babel.sty
(/usr/share/texmf-texlive/tex/generic/babel/russianb.ldf
(/usr/share/texmf-texlive/tex/generic/babel/babel.def))
(/usr/share/texmf-texlive/tex/generic/babel/english.ldf))
(/usr/share/texmf/tex/latex/R/Sweave.sty
(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty)
(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty
(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty)
(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty
(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty)
(/etc/texmf/tex/latex/config/graphics.cfg)
(/usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def)))
(/usr/share/texmf-texlive/tex/latex/fancyvrb/fancyvrb.sty
Style option: `fancyvrb' v2.6, with DG/SPQR fixes <1998/07/17> (tvz)
No file fancyvrb.cfg.
) (/usr/share/texmf/tex/latex/R/upquote.sty
(/usr/share/texmf-texlive/tex/latex/base/textcomp.sty
(/usr/share/texmf-texlive/tex/latex/base/ts1enc.def
(/usr/share/texmf-texlive/tex/latex/base/ts1enc.dfu))))
(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty
(/usr/share/texmf-texlive/tex/latex/cyrillic/t2aenc.def))
(/usr/share/texmf-texlive/tex/latex/ae/ae.sty
(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty
(/usr/share/texmf-texlive/tex/latex/base/t1enc.def)
(/usr/share/texmf-texlive/tex/latex/ae/t1aer.fd))))
LaTeX Warning: Unused global option(s):
[A4paper].
(./estimation.aux) (/usr/share/texmf-texlive/tex/latex/base/ts1cmr.fd)
! LaTeX Error: Command \CYRD unavailable in encoding T1.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.10 Д
Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° попытаемÑÑ Ð°Ð¿Ñ€Ð¾ÐºÑимировать...
?
! LaTeX Error: Command \CYRD unavailable in encoding T1. --- this is the
error message
I know how to win this situation. For this I must edit Sweave.sty, change T1
to T2A, and move usepakage{Sweave} operator in estimate.tex file to top of
declaration usepakage block, thus
\usepackage{Sweave}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
But this method similar to the rape. Which is the correct, regular method of
declaration of necessary fontecoding in Sweave?
R is open source. Changing the source to handle an unforeseen situation
is normal and expected, it's not an assault.
I don't know LaTeX well enough to know if there's a way to override the
Sweave.sty fontenc declaration. (I do know there are well documented
ways to change the formatting of code chunks, for example.) You could
ask on a LaTeX list if you want, but I'd suggest the solution you
already have is easier.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.