Duncan Murdoch wrote:
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.

Doesn't \usepackage[noae]{Sweave} do the trick? Sweave.sty has this conditionalized.

\ifthenelse{\boolean{swe...@ae}}{%
  \RequirePackage[T1]{fontenc}
  \RequirePackage{ae}
}{}%

(I'm not sure this is good LaTeX-design, loading and configuring other packages like that; styles usually try to stay orthogonal. Then again, I'm not much of a TeXpert.)

--
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalga...@biostat.ku.dk)              FAX: (+45) 35327907

______________________________________________
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.

Reply via email to