Если вы используете XEmacs вы можете использовать mmmmode для подсветки синтаксиса. Я использую ESS с statweave, так как первый отвечает, почему бы вам не использовать ESS для выделения sybntax и использовать statweave для выполнения этой работы. Однако я не использую SAS, но использовал stata и R в том же файле, и они оба работают со своей подсветкой синтаксиса. (требуется 'ммм-режим) (требуется' ммм-вары) (SETQ ммм-глобальный режим «может быть) (SETQ ммм-подрежим-украшение уровня 1)
(ттт-надстройку группа 'латекс-статистика ' ((г-тег : подрежим г-режим : лицо ттт-код-подрежим-лицо : разделитель-режим ноль : фронт "начать {RCODE}" : назад «конец {RCODE} " : back-offset (backward-char -1) : insert ((? R R-tag nil @" \ begin {Rcode} " @" \ n "_" \ n "@" \ end {Rcode} "@)) ) (STA-тег : подрежим СТО-режим : лицо ттт-код-подрежим-лицо : разделитель-режим ноля : перед "начать {Statacode}" : назад "конец {Statacode}" : назад смещение (назад-char -1) : insert ((?S STATA-тег ноль @ "\ начать {Statacode}" @ "\ п" _ "\ п" @ "\ конец {Statacode}" @)) )))
(добавить к списку ' ммм-режим-Ext-классы-ALIST «(Ноль„-swv.tex“латекс-статистика))
Вам просто нужно изменить в SAS-режиме (я думаю, если это то, что она называется) и у меня есть в моем latex.el файл (загружается с лямбда в init.el) следующие (местного установить ключ [ (контроль f1)]
«(лямбда() (интерактивный) (если (string-match "\ .tex" buffer-fi le-name) (progn (имя файла file-name1 file-name-wihoutswv) (setq имя-файла (имя-буфер-имя)) (setq file-name1 (file-name-nondirectory file -name)) (setq file-name-wihoutswv (replace-regexp-in-string "-swv" "" file-name1)) (setq file-name-wihoutswv (replace-regexp-in-string "\ .tex "" " file-name-wihoutswv)) (if (string-match" -swv \ .tex "buffer-file-name) (find-file-other-window (concat file-name-wihoutswv" .tex ")) (find-file-other-window (concat file-name-wihoutswv" -swv.tex ")) )) ) (сообщение" You ar e в латексном режиме, и это не файл swv и TeX. Не удается открыть соответствующий текс или sweave файл ") )))
и
(глобального установить ключ [f1]
«(лямбда() (интерактивный) (копи-буфер) (если (строка-матч "-swv \ .tex" буфер-имя-файла) (progn (интерактивный) (латекс-режим) ;; (шрифт-замок-раскрасить-буфер) (баланс-окна) (mylatex-delete-indent) (save-buffer) (save-window-excur sion (файл run-current-statweave-файл)) ; (Mylatex-чистый) ) (если (строка-матч "\ .tex" буфер-имя-файла) (progn (интерактивный) (латекс-режим) ; (шрифт-замок-раскрасить-буфер) (баланс-окна) (do-pdf) ; (mylatex-clean) )) (сообщение «это не TeX или SWV-файл, и я не знаю, что делать, кроме сохранения буфера в файл. Так что я сделал ") )) )
)
(DEFUN вводного тока statw eave-file() «Выполнение statweave в файле -swv.tex и запуск evince для просмотра вывода» (интерактивный) (let (имя файла file-name1 имя-имя-wihoutswv cmd1-str cmd2-str status) (setq имя-файла (имя-файла-буфера)) (setq file-name1 (имя файла-имя-имя файла)) (setq file-name-wihoutswv (replace-regexp-in-string "-swv \ .tex "".«Файл-name1)) ;; (SETQ cmd1-ул (CONCAT "statweave" файл-name1 "&" имя-файла-wihoutswv "&")) (SETQ cmd1-ул ( CONCAT "файл PDF & Evince statweave" -name1)) (SETQ cmd2-ул (CONCAT "Evince" имя-файла-wihoutswv "& ")) ;; (оболочка-команда cmd1-ул) (SETQ выходного буфера" swvoutput") (save-window-excursion (setq status (shell-command cmd1-str output-buffer)) ;; (статус сообщения) ;; (let (status) ((shell-command cmd1-str output-buffer))))) ))
Это выглядит ужасно, и я не эксперт по lisp, поэтому я уверен, что у него много неэффективности, но он работает.
Спасибо. Я хочу иметь файлы sas непосредственно в документе LaTeX в этом случае, но хорошо знать об этом другом варианте - –