Estoy intentando hacer accesos directos para emacs portátiles que enlacen a un compilador LaTeX portátil y R para Sweave, pero sé muy poco sobre el lenguaje utilizado en .emacs
(¿esto es Lisp?)Obtener el nombre del archivo de búfer sin extensión en .emacs
Actualmente estoy usando fullpath-relative-to-current-file
obtenida de http://xahlee.org/emacs/elisp_relative_path.html para obtener la ruta a .emacs
(que está en USBDRIVE/Documents
), a continuación, obtener la ruta relativa al compilador y lo llaman en buffer-file-name
que es la ruta completa y el nombre del archivo incluyendo la extensión de la extensión:
(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")))
)
)
)
Esto me permite usar C-c s
para ejecutar LaTeX en un archivo tex
y Sweave
en un archivo Rnw. Ahora me gustaría incluir llamadas a bibtex, pero para eso necesito el nombre de archivo y la ruta del archivo tex
sin extensión. ¿Cómo puedo hacer eso?
Gracias. '(file-name-sans-extension buffer-file-name)' funcionó. –