LINUX.ORG.RU

R и русский

 , , , ,


0

2

Ошибки при компиляции .Rnw файлов пишутся кракозябрами.

Пример:

rocess started

processing file: skeleto.Rnw

processing file: ./text/text.Rnw

processing file: ./biblio/biblio.Rnw

output file: skeleto.tex

Ошибка в texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, : Running 'texi2dvi' on 'skeleto.tex' failed. LaTeX errors: ! LaTeX Error: File `pscyr.sty' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: sty) ! Emergency stop. <read *> l.68 \usepackage {mathtext}^^M ! ==> Fatal error occurred, no output PDF file produced! Вызовы: <Anonymous> -> <Anonymous> -> texi2dvi

Выполнение остановлено

На Windows сталкивался с такой же проблемой, но там зоопарк кодировок, поэтому ожидал, что в Linux всё будет в порядке. Там проблема решилась снятием галочки в установщике «Install translations», после чего все ошибки выводились на английском.

На NixOS ставил R в окружение пользователя:

 $ nix-env -iA nixos.R 

В системе стоит русская локаль:

 cat /etc/nixos/configuration.nix
...
###LOCALE
  
  # Select internationalisation properties.
  i18n = {
 #   consoleFont = «cyr-sun16»;
 #   consoleKeyMap = «us,ru»;
    defaultLocale = «ru_RU.UTF-8»;
  };
...

Поэтому, видимо, R пытается переводить ошибки на русский.

Вопрос: как сделать нормальный перевод ошибок на русский, без кракозябр?

Deleted

Ответ на: комментарий от psv1967

Основной файл с преамбулой:

http://pastebin.com/yJ4xCCju

title.tex, form2.tex, form2a.tex --- титульник и рамки документа; text.Rnw --- текст самого документа, содержит chunk'и на R и просто текст с оформлением LaTeX.

Собирается документ в Texmaker'е командой

 Rscrypt -e "knitr::knit2pdf('%.Rnw')" 

(взято отсюда)

Deleted ()
Ответ на: комментарий от nezamudich

Да и вообще, дело не в документе.

Берём minimal-example от yihui отсюда, добавляем строчку в преамбулу

\usepackage{pscyr}
и получаем точно такую же ошибку с кракозябрами.

Deleted ()
Ответ на: комментарий от Deleted

Ошибки которые пишет ТеХ просто надо перекодировать (если у тебя не старая система с koi8-r где оно как то за годы эволюции совпало :).

Добавь конвеер на поток ошибок и перекодировку в него. Я когда то делал так, но потом забил и просто не делаю ошибок. :))

psv1967 ★★★★★ ()

Покажи настройки локали, то есть вывод команды

locale
Я попробовал с такими:
LANG=ru_RU.UTF-8
LANGUAGE=ru_RU:ru
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
и получил вполне читаемые сообщения об ошибках на русском языке (в Debian stretch, на случай, если это тоже важно, что маловероятно).

Что еще могло бы повлиять на такой вывод? Настройки терминала. В нем вообще русские буквы вводятся? Видны? Что за терминал?

TeopeTuK ★★★ ()

Похоже, что дело было в Texmaker'e. В Emacs + ESS всё отображается нормально.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.