Atalho de compilação do Aquamacs

Atalho de compilação do Aquamacs

Existe uma maneira de criar uma tecla de atalho apenas pela qual eu possa compilar um .texarquivo?

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 ^Vpara visualizar, pdfse 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. :)

insira a descrição da imagem aqui

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 .emacsarquivo). 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 vpara 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.el
localizado em
~/Biblioteca/Preferências/Aquamacs\ Emacs/
Depois de adicionar o código abaixo no arquivo, a sequência de comandos
CcCa
executará 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-keye, em seguida, adiciono isso ao LaTeX-modegancho para que ela seja executada sempre que você entrar LaTeX-mode.

Responder4

Alternativamente, você pode colocar o seguinte em seu arquivo .emacse 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.

informação relacionada