2012-03-13 20 views
8

Sto cercando di eseguire il lavoro di completamento Tab con RefTeX. Quando si digita C-c [ e si seleziona il tipo di riferimento, ho un prompt nel minibuffer. Quando conosco l'inizio della chiave bib che voglio inserire, ad esempio, ad esempio Campbell2006, desidero digitare CampScheda e ottenere Campbell2006 [completamento esclusivo].Configurazione del completamento della scheda RefTeX in emacs

Sono riuscito a configurarlo per alcuni documenti ma non capisco esattamente perché funzioni per loro e non per gli altri. Ho notato che per i documenti che hanno una corretta Tab> completamento, è aggiunta la seguente riga al file name_of_tex_file.el creata in un auto sottocartella:

(TeX-add-style-hook "name_of_tex_file" 
(lambda() 
(LaTeX-add-bibliographies 
"absolute_path_to_bib"))) 

Credo che ho ottenuto questo risultato aggiungendo %%% reftex-default-bibliography: absolute_path_to_bib alla fine dei miei file, ma questo è un po 'fastidioso, specialmente quando si modifica lo stesso file su diversi computer.

Nota che RefTeX funziona perché quando si digita C-c [CampRet, ottengo una lista (a volte un po 'strano) con l'entrata Campbell2006.

Ho provato a impostare le variabili di ambiente% BIBINPUTS% senza esito positivo. L'aggiunta di (setq reftex-bibpath-environment-variables '("c:/path_to_bib_file/")) sembrava necessaria per il C-c [CampRet metodo per funzionare. Ha in qualche modo gli stessi difetti dell'aggiunta di uno %%% reftex-default-bibliography: alla fine del file e non ha fornito il completamento Tab.

Ho provato varie combinazioni di /, //, \\ e \ come separatori di file quando si specificano i file, ma non so esattamente che devo usare (sto usando emacs in un ambiente Windows). Il problema potrebbe essere semplice ma, poiché ci sono molti parametri da provare, non riesco a determinare dove si trova il problema.

Qual è il metodo passo-passo per fare in modo che RefTeX funzioni correttamente con la bibliografia, incluso il completamento della scheda Tab?

EDIT: completamento è possibile secondo l'inserimento manuale Reftex sul comando reftex-citation:

L'espressione regolare utilizza una sintassi espansa: &&' is interpreted as and. Thus, aaaa & & bbb 'partite le voci che contengono sia aaaa' and bbb'. Mentre si immette l'espressione regolare, il completamento delle chiavi di conoscenza [sic] è possibile. `= 'è una buona espressione regolare per abbinare tutte le voci in tutti i file.

non fornisce indicazioni precise su come farlo funzionare.

Kindahero suggerisce di impostare un elenco delle voci di pettorale e utilizzare il comando completing-read.Sembra sensato, tuttavia mi piacerebbe generare questa lista automaticamente e sembra fattibile perché funziona con alcuni dei miei documenti.

+0

Solo un suggerimento. per essere in grado di avere il completamento di 'TAB', è necessario creare una lista con tutte le voci di pettorale per utilizzare' completing-read' che di default è associato a 'TAB' – kindahero

+0

Come soluzione alternativa, è possibile digitare' = ', quindi nel buffer di selezione cerca ciò di cui hai bisogno. – xuhdev

risposta

4

La documentazione di reftex-citation è un po 'confusa. Promette il completamento dei tasti di citazione noti, ma credo che "noto" si riferisca a chiavi che sono state usate precedentemente in questa sessione piuttosto che a tutte le chiavi nella bibliografia appropriata. È possibile utilizzare il comando LaTeX-add-all-bibitems-from-bibtex definito di seguito per caricare tutte le chiavi nella bibliografia:

(defun get-bibtex-keys (file) 
    (with-current-buffer (find-file-noselect file) 
    (mapcar 'car (bibtex-parse-keys)))) 

(defun LaTeX-add-all-bibitems-from-bibtex() 
    (interactive) 
    (mapc 'LaTeX-add-bibitems 
     (apply 'append 
       (mapcar 'get-bibtex-keys (reftex-get-bibfile-list))))) 

Suggerimenti su appositi ganci per rendere questo accada automaticamente sono i benvenuti.

Problemi correlati