2010-07-21 36 views
10

Como se explica en here, encuentro que el paquete acuñado es muy bueno para el listado del código fuente.Usando minted (paquete de código fuente LaTeX) con emacs/auctex

Mi pregunta es cómo usar el paquete acuñado con AucTeX/emacs? Para línea de comandos que puede utilizar pdflatex -shell-escape SOURCE, pero

  • P1: ¿Cómo puedo modificar el auctex para insertar el -shell-escape? Es decir, cómo cambiar la acción de C - c + C - c?
  • Q2: ¿Necesito llave especial que no sea C - c + C - c para -shell-escape opción? O, ¿está bien usarlo sin ningún problema?
  • Q3: ¿Para qué sirve el -shell-escape?

Respuesta

13

Q1: Necesita editar la forma en que AucTeX llama a LaTeX. Una forma de hacer esto es agregar lo siguiente a su archivo .emacs:

(eval-after-load "tex" 
    '(setcdr (assoc "LaTeX" TeX-command-list) 
      '("%`%l%(mode) -shell-escape%' %t" 
      TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX") 
    ) 
) 

P2: Una vez que haya realizado los cambios, todas las llamadas al látex con C-C C-C utilizará la opción -shell-escape.

Q3: Consulte la respuesta de Konrad. Tenga en cuenta que este método habilitará -shell-escape para todos los archivos editados en AucTeX, por lo que puede ser un posible riesgo de seguridad si utiliza paquetes o archivos de otras personas.

+0

Realmente útil. Gracias. –

+0

@ La respuesta de Mike en la parte inferior proporciona una forma más simple y menos intrusiva de hacer lo mismo en las versiones modernas de AucTeX. –

6

sólo puedo responder a la pregunta 3:

¿Cuál es el '-shell-escape' para?

minted utiliza una aplicación de otro fabricante, pygmentize, para procesar el código fuente. LaTeX por lo general no permite llamar a otras aplicaciones por razones de seguridad (un paquete deshonesto podría llamar código aribtrary). Para habilitar explícitamente las aplicaciones externas de llamada, debe habilitar este llamado escape al shell, que, en la mayoría de las instalaciones de LaTeX, se realiza a través del conmutador -shell-escape.

3

En versiones recientes de auctex, parece que será más confiable establecer TeX-command-extra-options, que está diseñado para este propósito, y no lo hace anular las diversas formas de TeX-command. Según tengo entendido (podría estar mal), esto no se puede establecer globalmente, sino que se debe establecer para cada archivo. Puedes hacer esto con un gancho. Por ejemplo, en .emacs podría añadir lo siguiente:

(add-hook 'TeX-mode-hook 
    (lambda() 
    (setq TeX-command-extra-options "-shell-escape") 
) 
) 

Y puesto que no sobrescribir plenamente la llamada de comando de látex, otras características seguirá funcionando - como encender synctex apoyo con (setq TeX-source-correlate-mode t) [que puede ocurrir fuera de la gancho].

+1

También puede agregarlo a sus '.dir-locals.el' para configurarlo para todos los archivos en una carpeta –

+0

Consejo útil. ¡Gracias! – Mike

Cuestiones relacionadas