Sweave bugs (?): убирает параметры документа и вставляет пустые строки

Рассмотрим файл minimum.Rnw, содержащий

\documentclass[
paper=a4,% 210mm × 297mm
pagesize% write page size to dvi
]{article}

\usepackage[american]{babel}
\usepackage{fancyvrb}

\begin{document}
\SweaveOpts{engine=R}
\SweaveOpts{pdf=TRUE}
Some text
\end{document}

Когда я компилирую его с помощью R CMD Sweave, я получаю файл .tex, который выглядит так:

\documentclass[%
NA
pagesize% write page size to dvi
]{article}

\usepackage[american]{babel}
\usepackage{fancyvrb}

\usepackage{Sweave}
\begin{document}


Some text
\end{document}

У меня есть два вопроса:

1) Почему первый вариант \documentclass заменен на NA и как этого избежать?

2) Я читал, что \SweaveOpts следует ставить после \begin{document}, но, видимо, это создает пустые строки (которые соответствуют новым абзацам в сгенерированном .tex-файле). Как я могу предотвратить это?

Если это важно: я работаю с Emacs 24 на Mac OS X 10.7.3 с R 2.14.0 и TeXLive 2011.

ОБНОВЛЕНИЕ

Что касается проблемы 1), я изменил свой вызов Sweave (из Emacs) в .emacs следующим образом (чтобы сообщить Sweave кодировку файла) — тем не менее, он создает NA в строке, содержащей не-ASCII-символ:

(add-hook 'Rnw-mode-hook
  (lambda ()
    (add-to-list 'TeX-command-list
         '("Sweave" "R CMD Sweave --encoding='utf8' %s"
           TeX-run-command nil t :help "Run Sweave") t)
    (setq TeX-command-default "Sweave")))

person Marius Hofert    schedule 28.02.2012    source источник
comment
Может это работает \% 210mm × 297mm. Не испытано.   -  person MYaseen208    schedule 29.02.2012
comment
Согласно документации, вы можете поставить \SweaveOpts перед \begin{document} -- и я всегда так делаю. Однако иногда вам это нужно после \begin{document} для локальных изменений: если вы уже находитесь в вертикальном режиме (т.е. между абзацами), как в вашем примере, пустые строки игнорируются.   -  person Vincent Zoonekynd    schedule 29.02.2012
comment
Спасибо за помощь. Если я поставлю \SweaveOpts перед \begin{document}, туда будут вставлены пустые строки. Я считаю это концептуальной ошибкой, хотя, конечно, не слишком важной. С 1) я до сих пор не знаю. Что меня пугает, так это то, что я не знаю, какие другие неизвестные мне части будут автоматически заменены Sweave. Это точно опаснее   -  person Marius Hofert    schedule 29.02.2012
comment
Я не могу воспроизвести (Emacs 34, Win 7-64, R 2.14.1, MiKTeX) сабы NA. Возможно, проблема возникает из-за символа между размерами бумаги. Отдельно \SweaveOpts не обязательно должно стоять после \begin{document}; Я обычно ставлю перед \documentclass   -  person Brian Diggs    schedule 29.02.2012
comment
Спасибо, Брайан. Действительно, замена x на , решает проблему NA. Тем не менее, не должно иметь значения, что комментарий что-то меняет (я думаю)   -  person Marius Hofert    schedule 29.02.2012
comment
Я считаю, что это проблема кодировки. Вы должны сообщить Sweave кодировку вашего документа, поскольку вы использовали не-ASCII-символ ×. Вы должны открыть R и сообщить sessionInfo().   -  person Yihui Xie    schedule 29.02.2012
comment
Ты прав. Хотя я думал, что набрал стандартную букву x, по-видимому, она действительно использовала время символов, отличное от ASCII. sessionInfo() показывает: R version 2.14.0 (2011-10-31), Platform: x86_64-apple-darwin11.2.0/x86_64 (64-bit), locale: C (остальное наверное не интересно). Как я могу сообщить Sweave о кодировке файла, чтобы избежать такой проблемы?   -  person Marius Hofert    schedule 29.02.2012
comment
Запуск sessionInfo() из R.app дает мне locale: C/en_US.UTF-8/C/C/C/C... Я нашел именно эту проблему на stackoverflow.com/questions/7509395/ Тем не менее, я не знаю, как сообщить Sweave, что кодировка UTF-8   -  person Marius Hofert    schedule 29.02.2012
comment
См. мое ОБНОВЛЕНИЕ выше. Я пытался указать Sweave использовать UTF-8, но, похоже, это никак не повлияло на проблему.   -  person Marius Hofert    schedule 29.02.2012
comment
Хорошо, я провел еще несколько экспериментов и разместил проблему здесь: stackoverflow.com/questions/9497621/   -  person Marius Hofert    schedule 29.02.2012