有沒有辦法製作一個只能用來編譯.tex
檔案的快速鍵?
對於 LaTeX 編譯,我使用快捷方式^C ^C
。它有時顯示“乳膠”作為預設值或“視圖”。如果它設定為“latex”,我只需按 Enter 鍵但設定為“view”,然後我必須輸入“latex”進行編譯。然後我用^C ^V
它來查看pdf
是否需要。
這是我最常用的操作,但在 後明確鍵入“latex”非常煩人^C ^C
。我是 Emacs 和 Aquamacs 的新手(只使用了一周)。
答案1
只需點擊工具列中的 LaTeX 按鈕即可。 :)
或者,執行 Command-O 開啟檔案並導航到
<HOME>/Library/Preferences/Aquamacs Emacs
並開啟Preferences.el
(Aquamacs 中首選該.emacs
檔案)。添加在底部
(add-hook
'LaTeX-mode-hook
(lambda ()
(local-set-key
(kbd "C-c c")
(lambda nil
(interactive)
(progn
(TeX-save-document
(TeX-master-file)
)
(TeX-command "LaTeX" (quote TeX-master-file) -1))))))
這會將透過點擊圖示執行的相同功能綁定到C-c c
。您可能想要新增類似的操作綁定到C-c v
以供查看
(add-hook
'LaTeX-mode-hook
(lambda ()
(local-set-key
(kbd "C-c v")
(lambda nil (interactive)
(TeX-command "View" (quote TeX-master-file) -1)))))
答案2
我正在使用 Aquamacs 並有相同的問題。 Sean Allred 的貼文幫助我找到了我正在尋找的答案。我唯一要補充的是,如果您只使用 Aquamacs,最好編輯該文件
偏好.el位於
〜/庫/首選項/Aquamacs\ Emacs/在文件中加入以下程式碼後,命令序列
抄送鈣將運行預設編譯器,然後將輸出傳送到預覽。這段程式碼複製自http://www.emacswiki.org/emacs/TN#toc8在 TEX-texify 部分下。
(需要'tex-buf) (defun TeX-命令-預設(名稱) “要使用的下一個 TeX 命令。大部分程式碼是從‘TeX-command-query’竊取的。” (cond ((if (字串-等於名稱 TeX-region) (TeX-check-files (連線名稱「.」(TeX-output-extension)) (列表名稱) TeX 檔案副檔名) (TeX-儲存文件(TeX-主文件))) TeX-命令-預設) ((和 (memq 主模式 '(doctex-mode Latex-mode)) (TeX-check-files(連接名稱“.bbl”) (mapcar '車 (LaTeX-參考書目-列表)) BibTeX-檔案副檔名)) ;;我們還應該在這裡檢查 bst 檔案。 TeX-命令-BibTeX) ((TeX-process-get-變數名稱 'TeX-命令-下一個 TeX-命令-顯示)) (TeX-命令-顯示))) (defcustom TeX-texify-Show t "在 TeX-texify 結束時啟動視圖指令?" :type 'boolean :group 'TeX-command) (defcustom TeX-texify-max-runs-same-command 5 "同一指令的最大運行次數" :type 'integer :group 'TeX-command) (defun TeX-texify-sentinel (&可選的過程哨兵) 「非互動式!呼叫目前 LaTeX 進程的標準哨兵。 如果還有剩餘,請啟動下一個 Latex 指令。 (設定緩衝區(進程緩衝區 proc)) (funcall TeX-texify-sentinel 過程哨兵) (讓((案例折疊搜尋零)) (當(字串符合「\\(完成\\ |退出\\)」哨兵時) (設定緩衝區 TeX 指令緩衝區) (除非(plist-get TeX-error-report-switches(實習生(TeX-master-file))) (TeX-texify))))) (defun TeX-texify () “把一切都做好。” (互動的) (let ((nextCmd (TeX-命令-預設 (TeX-主檔案))))) 過程) (如果(和(null TeX-texify-Show) (等於 nextCmd TeX-command-Show)) (當(互動式地呼叫任何) (訊息「TeX-texify:無需執行任何操作。」)) (TeX-指令 nextCmd 'TeX-master-file) (當(或(稱為-互動-p'任何) (null (boundp 'TeX-texify-count-same-command)) (null (boundp 'TeX-texify-last-command)) (null (等於 nextCmd TeX-texify-last-command))) (mapc 'make-local-variable '(TeX-texify-sentinel TeX-texify-count-same-command TeX-texify-last-command)) (setq TeX-texify-count-same-command 1)) (if (>= TeX-texify-count-same-command TeX-texify-max-runs-same-command) (訊息「TeX-texify:%S 已執行 %d 次。不想再這樣做了。」TeX-texify-last-command TeX-texify-count-same-command) (setq TeX-texify-count-same-command (1+ TeX-texify-count-same-command)) (setq TeX-texify-last-command nextCmd) (and (null (等於 nextCmd TeX-command-Show)) (setq proc(取得緩衝區程序(目前緩衝區))) (setq TeX-texify-sentinel (process-sentinel proc)) (set-process-sentinel proc 'TeX-texify-sentinel)))))) (add-hook 'LaTeX-mode-hook '(lambda () (local-set-key (kbd "Cc Ca") 'TeX-texify)))
答案3
除非有任何特定的按鍵序列(我知道有一個,但我不能尋找它),這會起作用:
(add-hook
'LaTeX-mode-hook
(lambda ()
(local-set-key
(kbd "C-c c")
(lambda (&optional arg)
"Run the current document through LaTeX."
(interactive "p")
(kmacro-exec-ring-item
(quote ([3 3 76 97 84 101 88 return] 0 "%d"))
arg)))
這會將按鍵序列綁定C-c c到執行的鍵盤巨集C-c C-c LaTeX RET。
如果你想知道,不,我自己並沒有做出這個重要的部分。我曾經C-x (啟動鍵盤宏,然後輸入C-c C-c LaTeX RET,然後C-c )完成巨集。然後我用來C-x C-k n命名宏,然後M-x insert-kbd-macro在 my 中運行.emacs
(通常可以透過 找到C-x C-f ~/.emacs)。
我使用 將巨集綁定到按鍵序列local-set-key
,然後將其新增至LaTeX-mode
掛鉤,以便在您每次輸入時執行LaTeX-mode
。
答案4
或者,您可以將以下內容放入您的檔案中.emacs
,並連續自動完成所有操作,就像 TeXMaker 中的快速建置一樣。
(require 'tex-buf)
(defun TeX-command-default (name)
"Next TeX command to use. Most of the code is stolen from `TeX-command-query'."
(cond ((if (string-equal name TeX-region)
(TeX-check-files (concat name "." (TeX-output-extension))
(list name)
TeX-file-extensions)
(TeX-save-document (TeX-master-file)))
TeX-command-default)
((and (memq major-mode '(doctex-mode latex-mode))
(TeX-check-files (concat name ".bbl")
(mapcar 'car
(LaTeX-bibliography-list))
BibTeX-file-extensions))
;; We should check for bst files here as well.
TeX-command-BibTeX)
((TeX-process-get-variable name
'TeX-command-next
TeX-command-Show))
(TeX-command-Show)))
(defcustom TeX-texify-Show t "Start view-command at end of TeX-texify?" :type 'boolean :group 'TeX-command)
(defcustom TeX-texify-max-runs-same-command 5 "Maximal run number of the same command" :type 'integer :group 'TeX-command)
(defun TeX-texify-sentinel (&optional proc sentinel)
"Non-interactive! Call the standard-sentinel of the current LaTeX-process.
If there is still something left do do start the next latex-command."
(set-buffer (process-buffer proc))
(funcall TeX-texify-sentinel proc sentinel)
(let ((case-fold-search nil))
(when (string-match "\\(finished\\|exited\\)" sentinel)
(set-buffer TeX-command-buffer)
(unless (plist-get TeX-error-report-switches (intern (TeX-master-file)))
(TeX-texify)))))
(defun TeX-texify ()
"Get everything done."
(interactive)
(let ((nextCmd (TeX-command-default (TeX-master-file)))
proc)
(if (and (null TeX-texify-Show)
(equal nextCmd TeX-command-Show))
(when (called-interactively-p 'any)
(message "TeX-texify: Nothing to be done."))
(TeX-command nextCmd 'TeX-master-file)
(when (or (called-interactively-p 'any)
(null (boundp 'TeX-texify-count-same-command))
(null (boundp 'TeX-texify-last-command))
(null (equal nextCmd TeX-texify-last-command)))
(mapc 'make-local-variable '(TeX-texify-sentinel TeX-texify-count-same-command TeX-texify-last-command))
(setq TeX-texify-count-same-command 1))
(if (>= TeX-texify-count-same-command TeX-texify-max-runs-same-command)
(message "TeX-texify: Did %S already %d times. Don't want to do it anymore." TeX-texify-last-command TeX-texify-count-same-command)
(setq TeX-texify-count-same-command (1+ TeX-texify-count-same-command))
(setq TeX-texify-last-command nextCmd)
(and (null (equal nextCmd TeX-command-Show))
(setq proc (get-buffer-process (current-buffer)))
(setq TeX-texify-sentinel (process-sentinel proc))
(set-process-sentinel proc 'TeX-texify-sentinel))))))
(add-hook 'LaTeX-mode-hook '(lambda () (local-set-key (kbd "C-c C-a") 'TeX-texify)))
這會將鍵序列綁定C-c C-a到TeX-texify
,它會執行產生目前文件所需的所有編譯步驟。無恥地被盜Emacs 維基。