Atajo de compilación de Aquamacs

Atajo de compilación de Aquamacs

¿Hay alguna manera de crear una tecla de acceso directo únicamente mediante la cual pueda compilar un .texarchivo?

Para la compilación de LaTeX, estoy usando un acceso directo ^C ^C. A veces me muestra 'látex' como predeterminado o 'ver'. Si está configurado en 'látex', simplemente presiono Entrar pero lo configuro en 'ver', luego tengo que escribir 'látex' para compilar. Luego uso ^C ^Vpara ver el pdfsi es necesario.

Esta es la operación más frecuente que uso, pero es bastante molesto escribir 'látex' explícitamente después ^C ^C. Soy un novato en Emacs y Aquamacs (lo he usado solo por una semana).

Respuesta1

Simplemente haga clic en el botón LaTeX en la barra de herramientas. :)

ingrese la descripción de la imagen aquí

Alternativamente, presione Comando-O para abrir un archivo y navegar hasta

<HOME>/Library/Preferences/Aquamacs Emacs

y abrir Preferences.el(que en Aquamacs se prefiere al .emacsarchivo). Añadir en la 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á la misma función ejecutada al hacer clic en el icono C-c c. Es posible que desee agregar una acción similar vinculada C-c vpara su visualización.

(add-hook
 'LaTeX-mode-hook
 (lambda ()
  (local-set-key
  (kbd "C-c v")
  (lambda nil (interactive)
   (TeX-command "View" (quote TeX-master-file) -1)))))

Respuesta2

Estoy usando Aquamacs y tenía la misma pregunta. La publicación de Sean Allred me ayudó a encontrar la respuesta que buscaba. Lo único que añadiría es que si usas únicamente Aquamacs es mejor editar el archivo

Preferencia.el
situado en
~/Biblioteca/Preferencias/Aquamacs\ Emacs/
Una vez que agregue el siguiente código en el archivo, la secuencia de comandos
CC CA
ejecutará el compilador predeterminado y luego enviará el resultado a la vista previa. Este fragmento de código fue copiado dehttp://www.emacswiki.org/emacs/TN#toc8en la sección TEX-texify.

    (requiere 'tex-buf)
(defun TeX-command-default (nombre)
  "Próximo comando TeX a usar. La mayor parte del código se roba de `TeX-command-query'".
  (cond ((if (cadena-nombre igual región TeX)
                 (Archivos de verificación TeX (nombre concat "." (extensión de salida TeX))
                          (Lista de nombres)
                          Extensiones de archivos TeX)
               (TeX-guardar-documento (TeX-master-file)))
             Comando TeX predeterminado)
            ((y (memq modo-mayor '(modo-doctex modo-látex))
                  (Archivos de comprobación TeX (nombre concat ".bbl")
                           (mapacar 'coche
                               (Lista-de-bibliografía-LaTeX))
                           Extensiones-de-archivo BibTeX))
             ;; Aquí también deberíamos buscar archivos bst.
             comando TeX-BibTeX)
            ((TeX-proceso-obtener-nombre-variable
                           'TeX-comando-siguiente
                           TeX-comando-Mostrar))
            (TeX-comando-Mostrar)))


(defcustom TeX-texify-Show t "¿Iniciar el comando de vista al final de TeX-texify?": escriba 'boolean: grupo 'comando TeX)
(defcustom TeX-texify-max-runs-same-command 5 "Número máximo de ejecución del mismo comando": escriba 'entero: grupo 'TeX-command)

(defun TeX-texify-sentinel (y centinela de proceso opcional)
  "¡No interactivo! Llame al centinela estándar del proceso LaTeX actual.
Si todavía queda algo, comience el siguiente comando de látex".
  (set-buffer (proceso-buffer proc))
  (funcall TeX-texify-sentinel proc centinela)
  (let ((case-fold-search nil))
    (cuando (string-match "\\(terminado\\|salió\\)" centinela)
      (set-buffer TeX-comando-buffer)
      (a menos que (plist-get TeX-error-report-switches (interno (TeX-master-file)))
    (TeX-texify)))))

(desfunción TeX-texify ()
  "Haz todo".
  (interactivo)
  (let ((nextCmd (comando-TeX-predeterminado (archivo-maestro-TeX)))
    proceso)
    (si (y (nulo TeX-texify-Show)
         (igual nextCmd TeX-command-Show))
    (cuando (llamado-interactivamente-p 'cualquiera)
      (mensaje "TeX-texify: No se puede hacer nada."))
      (comando TeX nextCmd 'archivo maestro TeX)
      (cuando (o (llamado-interactivamente-p 'cualquiera)
        (nulo (enlazadop 'TeX-texify-count-mismo-comando))
        (nulo (enlazadop 'TeX-texify-último-comando))
        (nulo (igual a nextCmd TeX-texify-last-command)))
    (mapc 'hacer-variable-local' (TeX-texify-sentinel TeX-texify-count-mismo-comando TeX-texify-último-comando))
    (setq TeX-texify-count-mismo-comando 1))
      (si (>= TeX-texify-count-mismo-comando TeX-texify-max-ejecuta-el mismo-comando)
      (mensaje "TeX-texify: %S ya %d veces. No quiero hacerlo más." TeX-texify-último-comando TeX-texify-count-mismo-comando)
    (setq TeX-texify-contar-mismo-comando (1+ TeX-texify-contar-mismo-comando))
    (setq TeX-texify-último-comando nextCmd)
    (y (nulo (igual nextCmd TeX-command-Show))
         (setq proc (obtener-proceso-búfer (búfer-actual)))
         (setq TeX-texify-sentinel (proceso-procesamiento centinela))
         (set-process-sentinel proc 'TeX-texify-sentinel))))))

(add-hook 'LaTeX-mode-hook'(lambda() (local-set-key (kbd "Cc Ca") 'TeX-texify)))

Respuesta3

Salvo una secuencia de teclas específica (que sé que existe, simplemente no puedoencontrarit), esto 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)))

Esto vincula la secuencia de teclas C-c ca una macro de teclado que se ejecuta C-c C-c LaTeX RET.


Si te lo estás preguntando, no, yo no hice la parte importante de esto. Solía C-x (​​​​iniciar una macro de teclado, luego escribía C-c C-c LaTeX RETy luego C-c )terminaba la macro. Luego solía C-x C-k nnombrar la macro y luego la ejecutaba M-x insert-kbd-macrodentro de mi .emacs(normalmente se puede encontrar mediante C-x C-f ~/.emacs).

Vinculo la macro a una secuencia de teclas usando local-set-keyy luego agrego esto al LaTeX-modegancho para que se ejecute cada vez que ingresa LaTeX-mode.

Respuesta4

Alternativamente, puede colocar lo siguiente en su .emacsy hacer que todo se haga automáticamente en sucesión, muy parecido a Quick Build en 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)))

Esto une la secuencia de claves C-c C-aaTeX-texify , que pasa por todos los pasos de compilación necesarios para producir el documento actual. Robado descaradamenteWiki de Emacs.

información relacionada