2012-08-03 101 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