7
移植可能なLaTeXコンパイラとSweaveにリンクする移植可能なemacsのショートカットを作成しようとしていますが、.emacs
(これはLispですか?)で使用される言語はほとんど分かりません.emacsで拡張子なしのバッファファイル名を取得する
USBDRIVE/Documents
である)
.emacs
へのパスを取得するために
http://xahlee.org/emacs/elisp_relative_path.htmlから得られ
fullpath-relative-to-current-file
を使用しています
現在は、コンパイラへの相対パスを取得し、拡張子の拡張子を含む完全なパスとファイル名です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")))
)
)
)
これにより、ファイルでLaTeXを実行し、RnwファイルでSweave
を実行するのにC-c s
を使用することができます。今、私はbibtexへの呼び出しを含めたいと思っていますが、そのためには拡張子なしでtex
ファイルのファイル名とパスが必要です。どうやってやるの?
ありがとうございました。 '(ファイル名-sans-extensionバッファーファイル名)'が機能しました。 –