2011-09-07 23 views
27

reftex-view-crossref-extra ifadesi, reftex-view-crossref işlevi için ek desenler ayarlar. Makro Regexp, Search Regexp ve Highlight Group'tan (aşağıda gösterildiği gibi) oluşur:Emacs'te reftex-view-crossref-extra nasıl ayarlanır?

(MAKRO-RE SEARCH-RE HIGHLIGHT).

MAKRO-RE, makroyla eşleşir. SEARCH-RE, çapraz referans aramak için kullanılan regexp 'dur. Bu regexp dosyasındaki `% s ', yerine makro argümanı ile değiştirilmiştir. VURGULAMA, maçın hangi alt grubunun vurgulanması gerektiğini gösteren tam sayıdır.

aşağıdaki desen eşleşmesi için çalışıyorum (org-mod dipnotlar):

[fn:author2000title:Optional text] 

author2000title i için bir maç olmasını istediğiniz biblatex etikettir. MACRO-RE ve SEARCH-RE'u nasıl yazabilirim, reftex-view-crossref bu tür kayıtlarda çalışır?

+2

Tüm [fn: author2000title: İsteğe bağlı metin] 'veya sadece' author2000title'yi yakalamak ister misiniz? –

cevap

2

Özel ayarlarınız için bir çözüm bulmanıza yardımcı olabilir. Ben parantez içinde \oinc{mylabel} noktayı yerleştirin ve C-c & basarsanız

(setq reftex-view-crossref-extra '(("\\\\oinc" "\\[fn:%s:[^]]*?\\]" 0))) 

I kurulum, reftex-view-crossref-extra Ayar

* Heading 1 
    \oinc{mylabel} 
    stuff 
* Heading 2 
    otherstuff [fn:mylabel:Display text] 

testfile küçük org Bunu test etmek için, [fn...] vurgulanan ve ilk olarak tespit alır ve sadece maç.

Düzenle: 'u, kullandığınız etiket tanımlayıcı makroları tutarak bir normal ifadeyle değiştirin. "\\\\mylabel\\|\\\\oinc". \label standart komutları için referans eşleşmeleri tanımlayamazsınız; onların kullanımı kodlanmış; ama standartın takma adında yeni bir komut tanımlayabilirsiniz¹ ve etiketlerinizi tanımlamak için burayı kullanarak reftex-view-crossref numarasını kullanabilirsiniz.

Özetlemek gerekirse: MACRO-RE ilgilendiğiniz parametre olmadan makro eşleşen bir regexp ise, SEARCH-RE istediğiniz referans formatını eşleşir ve hangi makro için argüman ile değiştirilecektir bir %s yerleştirmelidir bir regexp'in olduğunu MATCH-RE ile eşleşti. SEARCH-RE, yakalama parantezleri içeriyorsa, yakalama eşleşmelerinin yalnızca bölümünü, üçüncü liste öğesi HIGHLIGHT tamsayı olarak ifade eden tamsayı olarak ifade eden tamsayı olarak ifade edebilir, yani tüm yakalama için 0, ilk yakalama için 1 Açılış parenslerinin sırasının yakalanan eşleşmelerin numaralandırmasını tanımladığı ikinci vb. Için 2.

tür Saygılarımızla, Tom

1: \newcommand{\mylabel}[1]{\label{#1}}

Dikkat Edilmeli: Yalnızca mylabel arama/eşleştirme vurgulanır istiyorsanız,

(setq reftex-view-crossref-extra '(("\\oinc" "\\[fn:\\(%s\\):[^]]*?\\]" 1))) 

haber eşleştirme parens için değiştirmek SEARCH-RE, listedeki ikinci öğe.