2012-08-03 157 views
2

我试图完全自动化发送作业应用程序。第一步,把公司的名字写在信里。它几乎可以工作,但因为它询问要使用什么命令而卡住了。阅读文档,我认为它可以通过前缀参数禁用,但我得到了一些错误。此外,它不需要通过视觉进行闪光,它可以完全作为背景处理完成。我将粘贴代码,你会立即明白:elisp:生成LaTeX PDF文档

(在Emacs哦,我使用的乳胶/ P模式 - 我们的目标是不仅更新.tex也.pdf文件)

(defun edit-letter (comp-name) 
    (let ((path "~/work/letter/comp")) 
    (edit-letter-file-path comp-name (concat path "/eng/letter.tex")) 
    (edit-letter-file-path comp-name (concat path "/swe/brev.tex")))) 

(defun edit-letter-file-path (company-name file-path) 
    (find-file file-path) 
    (goto-line 14) 
    (kill-line) 
    (insert (format "\\textbf{To %s}\n" company-name)) 
    (setq current-prefix-arg nil) 
    (call-interactively 'TeX-command-master) ; asks what command 
    (kill-buffer)) ; doesn't work 

(edit-letter "Digital Power Now") 
+0

好的,就这样解决了。没有太多,但它的作品。结束上面的第二个函数:'(shell-command(concat“pdflatex --output-directory〜/ work/letter/comp”file-path))' – 2012-08-04 11:46:19

回答

2

这不是从你的问题完全清楚你以后,但如果你想使用AucTeX调用一个LaTeX/Pdftex提供/中文提供过程中没有得到提示输入命令的名称,你可以使用这个:

(TeX-command "LaTeX" 'TeX-master-file) 

试试这个来代替以上的(call-interactively 'TeX-command-master)。当您使用LaTeX/P时,“LaTeX”的意思就是pdflatex。

+0

这是很久以前的事了,所以我忘记了细节。但我设法解决它(见上面我的评论)。无论如何,感谢您的努力和提示:) – 2012-12-28 23:02:49

+0

我不知道你的问题有多大,我只是浏览未解答的问题,并看到它。今天我只是用这个代码来处理一个项目,所以它在我的脑海里变得新鲜了! – Tyler 2012-12-29 02:40:41

+0

不,一般来说,无论何时,回答任何问题当然都是100%正确的。如果你进入Emacs和(E)Lisp,你可以查看最终结果[这里](http://user.it.uu.se/~embe8573/auto-work.el)。 – 2012-12-29 04:25:51