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? [[alternative HTML version deleted]]
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
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{Sweave at 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.dalgaard at biostat.ku.dk) FAX: (+45) 35327907