Existe uma maneira de criar uma tecla de atalho apenas pela qual eu possa compilar um .tex
arquivo?
Para compilação LaTeX, estou usando o atalho ^C ^C
. Ele me mostra 'látex' como padrão ou 'visualização' às vezes. Se estiver definido como 'latex', apenas pressiono Enter, mas defino como 'view', então tenho que digitar 'latex' para compilar. Então eu uso ^C ^V
para visualizar, pdf
se necessário.
Esta é a operação mais frequente que uso, mas é muito chato digitar 'latex' explicitamente depois de ^C ^C
. Sou novato em Emacs e Aquamacs (usei apenas por uma semana).
Responder1
Basta clicar no botão LaTeX na barra de ferramentas. :)
Como alternativa, execute Command-O para abrir um arquivo e navegue até
<HOME>/Library/Preferences/Aquamacs Emacs
e abra Preferences.el
(que é preferido no Aquamacs ao .emacs
arquivo). Adicione na parte inferior
(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))))))
que vinculará a mesma função executada clicando no ícone para C-c c
. Você pode querer adicionar uma ação semelhante vinculada C-c v
para visualização
(add-hook
'LaTeX-mode-hook
(lambda ()
(local-set-key
(kbd "C-c v")
(lambda nil (interactive)
(TeX-command "View" (quote TeX-master-file) -1)))))
Responder2
Estou usando Aquamacs e tive a mesma dúvida. A postagem de Sean Allred me ajudou a encontrar a resposta que procurava. A única coisa que gostaria de acrescentar é que se você usa apenas Aquamacs é melhor editar o arquivo
Preferência.ellocalizado em
~/Biblioteca/Preferências/Aquamacs\ Emacs/Depois de adicionar o código abaixo no arquivo, a sequência de comandos
CcCaexecutará o compilador padrão e enviará a saída para visualização. Este trecho de código foi copiado dehttp://www.emacswiki.org/emacs/TN#toc8na seção TEX-texify.
(requer 'tex-buf) (defun TeX-command-default (nome) "Próximo comando TeX a ser usado. A maior parte do código é roubada de `TeX-command-query'." (cond ((if (nome igual a string região TeX) (Arquivos de verificação TeX (nome concat "." (extensão de saída TeX)) (lista de nomes) Extensões de arquivo TeX) (Documento salvo TeX (arquivo mestre TeX))) TeX-command-default) ((e (memq modo principal '(modo doctex modo látex)) (Arquivos de verificação TeX (nome concat ".bbl") (mapcar 'carro (Lista de bibliografia LaTeX)) Extensões de arquivo BibTeX)) ;; Devemos verificar os arquivos bst aqui também. TeX-comando-BibTeX) ((TeX-process-get-variable name 'TeX-comando-próximo TeX-comando-Show)) (TeX-comando-Mostrar))) (defcustom TeX-texify-Show t "Iniciar comando de visualização no final do TeX-texify?" :type 'boolean :group 'TeX-command) (defcustom TeX-texify-max-runs-same-command 5 "Número máximo de execução do mesmo comando" :type 'integer :group 'TeX-command) (defun TeX-texify-sentinel (e proc sentinela opcional) "Não interativo! Chame a sentinela padrão do processo LaTeX atual. Se ainda houver algo sobrando, inicie o próximo comando latex." (set-buffer (process-buffer proc)) (funcall TeX-texify-sentinel proc sentinela) (deixe ((case-fold-search nulo)) (quando (string-match "\\(terminado\\|exited\\)" sentinela) (set-buffer TeX-command-buffer) (a menos que (plist-get TeX-error-report-switches (intern (arquivo mestre TeX))) (TeX-texificar))))) (defun TeX-texify() "Faça tudo." (interativo) (let ((nextCmd (TeX-command-default (TeX-master-file))) procedimento) (se (e (nulo TeX-texify-Show)) (igual a nextCmd TeX-command-Show)) (quando (chamado-interativamente-p 'qualquer) (mensagem "TeX-texify: Nada a ser feito.")) (Comando TeX nextCmd 'Arquivo mestre TeX) (quando (ou (chamado interativamente-p 'qualquer)) (null (boundp 'TeX-texify-count-same-command)) (null (boundp 'TeX-texify-last-command)) (nulo (igual a 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)) (se (>= TeX-texify-count-same-command TeX-texify-max-runs-same-command) (mensagem "TeX-texify: Já fiz %S %d vezes. Não quero mais fazer isso." 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) (e (nulo (igual a nextCmd TeX-command-Show)) (setq proc (get-buffer-process (buffer atual))) (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)))
Responder3
Exceto qualquer sequência de teclas específica (que eu sei que existe, simplesmente não consigoencontrarisso), isso funcionará:
(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)))
Isso vincula a sequência de teclas C-c ca uma macro de teclado executada C-c C-c LaTeX RET.
Se você está se perguntando, não, eu não fiz a parte importante disso sozinho. Eu costumava C-x (iniciar uma macro de teclado, depois digitava C-c C-c LaTeX RETe C-c )para finalizar a macro. Eu costumava C-x C-k nnomear a macro e depois rodava M-x insert-kbd-macrodentro do meu .emacs
(geralmente encontrável por C-x C-f ~/.emacs).
Eu vinculo a macro a uma sequência de teclas usando local-set-key
e, em seguida, adiciono isso ao LaTeX-mode
gancho para que ela seja executada sempre que você entrar LaTeX-mode
.
Responder4
Alternativamente, você pode colocar o seguinte em seu arquivo .emacs
e fazer tudo automaticamente em sucessão, bem como o Quick Build no 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)))
Isso vincula a sequência de teclas C-c C-aa TeX-texify
, que passa por todas as etapas de compilação necessárias para produzir o documento atual. Roubado descaradamente deWiki do Emacs.