Я пытаюсь сделать ярлыки для портативного emacs, связывающего с портативным компилятором LaTeX и R для Sweave, но я очень мало знаю о языке, используемом в .emacs
(это Lisp?)
Сейчас я использую fullpath-relative-to-current-file
, полученный из http://xahlee.org/emacs/elisp_relative_path.html, чтобы получить путь к . emacs
(который находится в USBDRIVE/Documents
), затем получить относительный путь к компилятору и вызвать его на buffer-file-name
, который является полным путем и именем файла, включая расширение:
(global-set-key (kbd "C-c s")
(lambda ()
(interactive)
(cond ((string-equal (file-name-extension (buffer-file-name)) "tex")
(shell-command (concat (fullpath-relative-to-current-file "../PortableApps/miktex/miktex/bin/pdflatex ") buffer-file-name)))
)
(cond ((string-equal (file-name-extension (buffer-file-name)) "Rnw")
(shell-command (concat (fullpath-relative-to-current-file "../PortableApps/R/R-2.14.1/bin/R CMD Sweave ") buffer-file-name " --pdf")))
)
)
)
Это позволяет мне использовать C-c s
для запуска LaTeX на tex
файле и Sweave
на Rnw файле. Теперь я хочу включить вызовы bibtex, но для этого мне нужно имя файла и путь к файлу tex
без расширения. Как мне это сделать?