2010-07-21 11 views
10

Come illustrato in here, trovo che il pacchetto Minted è piuttosto interessante per l'elenco del codice sorgente.Utilizzo di minted (pacchetto LaTeX codice sorgente) con emacs/auctex

La mia domanda è come usare il pacchetto Minted con AucTeX/emacs? Per la linea di comando posso usare pdflatex -shell-escape SOURCE, ma

  • Q1: Come posso modificare l'AucTeX per inserire il -shell-escape? Voglio dire, come cambiare l'azione per C - c + C - c?
  • Q2: Ho bisogno di speciale tasto diverso C - c + C - c per -shell-escape opzione? O è solo OK per usarlo senza alcun problema?
  • Q3: A cosa serve il -shell-escape?

risposta

13

Q1: È necessario modificare il modo in cui LaTeX viene chiamato da AucTeX. Un modo per farlo è quello di aggiungere il seguente al file .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") 
    ) 
) 

Q2: Una volta apportate le modifiche, tutte le chiamate a LaTeX con C-c C-c utilizzerà l'opzione -shell-escape.

Q3: vedere la risposta di Konrad. Si noti che questo metodo abiliterà -shell-escape per tutti i file modificati in AucTeX, quindi può essere un potenziale rischio per la sicurezza se si utilizzano pacchetti o file di altre persone.

+0

Davvero utile. Grazie. –

+0

@ La risposta di Mike in basso fornisce un modo più semplice e meno invadente di fare lo stesso nelle versioni moderne di AucTeX. –

6

posso solo rispondere alla domanda 3:

Qual è il '-shell-escape' per?

coniata utilizza un'applicazione di terze parti, pygmentize, per elaborare il codice sorgente. LaTeX di solito non consente di chiamare altre applicazioni per motivi di sicurezza (un pacchetto rogue potrebbe altrimenti chiamare codice aribrary). Per abilitare esplicitamente la chiamata alle applicazioni esterne, è necessario abilitare questa cosiddetta escape alla shell, che, sulla maggior parte delle installazioni di LaTeX, viene effettuata tramite lo switch -shell-escape.

3

Nelle versioni recenti di auctex, sembra che sia più affidabile impostare TeX-command-extra-options, progettato per questo scopo e che non consente di ignorare le varie forme di TeX-command. A quanto ho capito (potrebbe essere sbagliato), questo non può essere impostato a livello globale, ma deve essere impostato per ogni file. Puoi farlo con un gancio. Per esempio, in .emacs si potrebbe aggiungere questo:

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

E dal momento che non sovrascrivere completamente la chiamata comando di lattice, le altre caratteristiche continuerà a funzionare - come accendere synctex di supporto con (setq TeX-source-correlate-mode t) [che può accadere al di fuori del gancio].

+1

Puoi anche aggiungerlo al tuo '.dir-locals.el' per impostarlo per tutti i file in una cartella –

+0

Suggerimento utile. Grazie! – Mike

Problemi correlati