Ввод окраски синтаксиса с использованием Sweave с TeXShop?

Я только начал использовать Sweave в TeXShop (который работает на OSX). Можно ли иметь синтаксическую окраску исходного кода, чтобы я мог различать необработанный текст и R-код?

Например, следующий фрагмент кода в моем файле Sweave такой же, как и остальной текст, что делает его более трудным для чтения, чем редактор R с подсветкой синтаксиса.

<<reg, fig=TRUE, echo=FALSE>>=
a = c(10,15)
plot(a, a)
@

(Я также попробовал это, используя замечательную RStudio, которая имеет подсветку синтаксиса как для R, так и для Latex, но я думаю, что TexShop лучше для LaTeX.)


person djq    schedule 31.03.2011    source источник
comment
Вы должны взглянуть на пакет highlight. Он может производить вывод LaTeX.   -  person aL3xa    schedule 31.03.2011
comment
Моя ошибка, вам нужно pgfSweave — взгляните на мой ответ ниже.   -  person aL3xa    schedule 01.04.2011


Ответы (2)


Я не верю, что TexShop поддерживает переключение режимов (например, выделение на двух разных языках — R и LaTeX — в одном и том же файле), поскольку он был разработан для одного языка (LaTeX). Насколько мне известно, редакторы, которые делают и, следовательно, правильно обрабатывают Sweave:

  • Затмение со статистикой/ET
  • RStudio
  • Emacs с ESS
person Ari B. Friedman    schedule 31.03.2011
comment
TextMate тоже это делает, но мне нравится система движка TexShop, поэтому я живу с отсутствием раскрашивания фрагментов. - person cameron.bracken; 01.04.2011

На самом деле, вы можете использовать выделенный синтаксис из коробки. Используйте пакет pgfSweave. Просто добавьте pgf=TRUEecho=TRUE) к фрагменту Sweave, и все готово. Установите pgfSweave и загрузите виньетку пакета (vignette("pgfSweave")) для получения дополнительной помощи.

Версия 1.1.0 pgfSweave представила опцию выделения. По умолчанию установлено значение TRUE, поэтому код будет подсвечиваться синтаксис с помощью пакета highlight.

person aL3xa    schedule 31.03.2011
comment
Мне интересно увидеть окраску синтаксиса в моем необработанном исходном коде; не скомпилированный код. Если я понимаю ваш ответ, я думаю, вы имеете в виду раскраску синтаксиса для вывода? - person djq; 01.04.2011
comment
Ой, извините, я невнимательно прочитал ваш вопрос. Неудивительно, что до сих пор никто не ответил. Что ж... У меня нет опыта работы с MacOS, но Emacs с ESS имеет окраску синтаксиса LaTeX/R, если вас это устраивает. =/ Еще раз извините за мою ошибку (ошибки). - person aL3xa; 01.04.2011
comment
Без проблем; спасибо за ответ в любом случае. Я добавил в заголовок дополнительный «ввод», чтобы сделать его немного понятнее. - person djq; 01.04.2011