GNUEmacs / ESS / Latex / Sweave: текст отображается по-разному, когда курсор находится в латексном коде или в коде R - PullRequest
6 голосов
/ 15 декабря 2011

Когда я пролистываю документ Sweave (Rnw) с латексом и R код, текст перемещается при изменении режима между латексом и ESS. Два режима не согласны с тем, как следует переносить текст. Более того, я заметил, что когда я делаю

  1. M-x toggle-truncate-lines для включения усеченных длинных строк, пока курсор находится в латексном коде
  2. переместить курсор на код R
  3. возврат к латексному коду

режим усеченных длинных строк больше не включен. Кто-нибудь это заметил? Кто-нибудь решил эту проблему?

1 Ответ

4 голосов
/ 15 декабря 2011

Читая аналогичный вопрос в списке рассылки ess-help@r-project.org, я узнал об этом.Когда мы прокручиваем файл noweb, мы переключаем основные режимы с ESS на LaTeX.Большинство основных режимов убивают все локальные переменные как часть их инициализации, поэтому, когда мы просто устанавливаем переменную локально, она перезаписывается.Чтобы решить эту проблему, я изменил найденный хук:

(add-hook 'LaTeX-mode-hook '(lambda () (if (string-match "\\.Rnw\\'" buffer-file-name) (setq fill-column 80))))

Вы можете установить аналогичный хук для longlines-mode или toggle-truncate-lines и т. Д., Чтобы удовлетворить ваши потребности.Недостатком этого решения является то, что вы застряли с одним значением для переменной, установленной в ловушке.

...