我正在尝试为可移植的emacs链接到便携式LaTeX编译器和R for Sweave创建快捷方式,但我对.emacs
中使用的语言知之甚少(这是Lisp?)
目前我正在使用从http://xahlee.org/emacs/elisp_relative_path.html获取的fullpath-relative-to-current-file
来获取.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
在tex
文件上运行LaTeX,在Rnw文件上运行Sweave
。现在我想包含对bibtex的调用,但为此我需要tex
文件的文件名和路径,不带扩展名。我怎么能这样做?