¿Hay alguna manera de crear una tecla de acceso directo únicamente mediante la cual pueda compilar un .tex
archivo?
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 ^V
para ver el pdf
si 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. :)
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 .emacs
archivo). 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 v
para 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.elsituado en
~/Biblioteca/Preferencias/Aquamacs\ Emacs/Una vez que agregue el siguiente código en el archivo, la secuencia de comandos
CC CAejecutará 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-key
y luego agrego esto al LaTeX-mode
gancho para que se ejecute cada vez que ingresa LaTeX-mode
.
Respuesta4
Alternativamente, puede colocar lo siguiente en su .emacs
y 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.