파일만 컴파일할 수 있는 단축키를 만드는 방법이 있나요 .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만 사용하는 경우 파일을 편집하는 것이 더 낫다는 것입니다.
Preference.el에 위치한
~/라이브러리/기본 설정/Aquamacs\ Emacs/파일에 아래 코드를 추가하면 명령 시퀀스
참조 캘리포니아기본 컴파일러를 실행한 다음 출력을 미리보기로 보냅니다. 이 코드 조각은 다음에서 복사되었습니다.http://www.emacswiki.org/emacs/TN#toc8TEX-texify 섹션 아래에 있습니다.
('tex-buf 필요) (TeX-command-default (이름)을 거부하세요 "사용할 다음 TeX 명령입니다. 대부분의 코드는 `TeX-command-query'에서 도난당했습니다." (cond ((if (문자열과 동일한 이름 TeX-지역) (TeX-check-files(연결 이름 "."(TeX-output-extension)) (목록 이름) TeX 파일 확장자) (TeX-저장-문서(TeX-마스터-파일))) TeX 명령-기본값) ((그리고 (memq major-mode '(doctex-mode latex-mode)) (TeX-check-files (연결 이름 ".bbl") (맵카 '자동차 (LaTeX-참고문헌 목록)) BibTeX 파일 확장자)) ;; 여기서도 bst 파일을 확인해야 합니다. TeX 명령-BibTeX) ((TeX-process-get-변수 이름 'TeX 명령-다음 TeX 명령-표시)) (TeX 명령-표시))) (TeX-texify-Show t "TeX-texify 끝에서 보기 명령을 시작하시겠습니까?" :type 'boolean :group 'TeX-command) (defcustom TeX-texify-max-runs-same-command 5 "동일 명령의 최대 실행 수" :type 'integer :group 'TeX-command) (TeX-texify-sentinel을 비활성화했습니다(&선택적 proc sentinel). "비대화형! 현재 LaTeX 프로세스의 표준 센티넬을 호출하세요. 아직 뭔가 남아 있다면 다음 라텍스 명령을 시작하세요." (세트 버퍼(프로세스 버퍼 프로세스)) (TeX-texify-sentinel proc sentinel을 호출하세요) (let ((case-fold-search nil)) ((문자열 일치 "\\(finished\\|exited\\)" 센티널일 때) (세트 버퍼 TeX 명령 버퍼) ((plist-get TeX-error-report-switches (인턴 (TeX-마스터 파일))이 아닌 경우)) (TeX-texify))))) (TeX-texify를 거부함() "모든 일을 끝내세요." (인터렉티브) (let ((nextCmd (TeX-명령어-기본 (TeX-마스터-파일)))) 프로세스) (if (및 (null TeX-texify-Show) (nextCmd TeX-command-Show와 동일)) ((대화형으로 호출된 '모든 경우) ("TeX-texify: 아무것도 할 일이 없습니다." 메시지)) (TeX 명령 nextCmd 'TeX-마스터-파일) (언제 (또는 (대화형으로 호출됨) '아무거나) (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) (및 (null(nextCmd TeX-command-Show와 동일)) (setq proc(get-buffer-process(현재 버퍼))) (setq TeX-texify-sentinel(프로세스-센티널 proc)) (set-process-sentinel proc 'TeX-texify-sentinel)))))) (추가 후크 'LaTeX-mode-hook'(lambda () (local-set-key (kbd "Cc Ca") 'TeX-texify)))
답변3
특정 키 시퀀스를 제외하고(그것이 있다는 것을 알고 있지만찾다it) 다음과 같이 작동합니다.
(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내 내부에서 실행했습니다 .emacs
(보통 에서 찾을 수 있음 C-x C-f ~/.emacs).
를 사용하여 매크로를 키 시퀀스에 바인딩한 local-set-key
다음 이를 LaTeX-mode
후크에 추가하여 를 입력할 때마다 실행되도록 합니다 LaTeX-mode
.
답변4
또는 TeXMaker의 Quick Build와 마찬가지로 다음 항목을 에 배치 .emacs
하고 모든 작업이 연속적으로 자동으로 수행되도록 할 수 있습니다.
(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
이는 현재 문서를 생성하는 데 필요한 모든 컴파일 단계를 거치는 바인딩합니다. 뻔뻔하게도 훔쳐간이맥스 위키.