2011-09-07 7 views
27

La expresión reftex-view-crossref-extra establece patrones adicionales para la función reftex-view-crossref. Consiste en Macro Regexp, Buscar expresión regular y resaltar grupo (como se ilustra a continuación):Cómo configurar reftex-view-crossref-extra en Emacs?

(MACRO-RE SEARCH-RE HIGHLIGHT).

MACRO-RE se compara con la macro. SEARCH-RE es la expresión regular que se utiliza para buscar referencias cruzadas. `% s 'en esta expresión regular se reemplazó por con el argumento de macro en el punto. HIGHLIGHT es un número entero que indica qué subgrupo de la coincidencia debe resaltarse. (Notas a pie de org-mode)

Estoy tratando de coincidir con el siguiente patrón:

[fn:author2000title:Optional text] 

author2000title es la etiqueta biblatex que quiero tener un partido para. ¿Cómo puedo escribir MACRO-RE y SEARCH-RE, de modo que reftex-view-crossref funcione en este tipo de registros?

+2

¿Desea ver todo el '[fn: author2000title: texto opcional]' o simplemente 'author2000title'? –

Respuesta

2

Quizás esto lo ayude a encontrar una solución para su configuración especial. Para probar esto, tengo que instalar un pequeño org testfile

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

Configuración reftex-view-crossref-extra a

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

si pongo punto en \oinc{mylabel}, dentro de las llaves, y presiono C-c &, [fn...] consigue destacado e identificado como el primer y solo partido.

Editar: reemplace "\\\\oinc" con una expresión regular que contenga la etiqueta que define las macros que utiliza, p. "\\\\mylabel\\|\\\\oinc". No puede definir coincidencias de referencia para los comandos estándar \label, etc .; su manejo está codificado; pero puede definir un nuevo comando aliasing el estándar¹, y utilizando esto para definir sus etiquetas puede usar la configuración reftex-view-crossref de la manera que se muestra aquí para buscar sus referencias personalizadas.

En resumen: MACRO-RE es una expresión regular que emparejan las macros sin parámetros que le interesan, SEARCH-RE es una expresión regular que coincida con el formato de referencia deseada, y en el que se debe colocar una %s que será reemplazado por el argumento de la macro emparejado con MATCH-RE. Si su SEARCH-RE contiene paréntesis de captura, puede resaltar solo la parte de las coincidencias de captura, proporcionando el tercer elemento de lista HIGHLIGHT como entero que hace referencia a la captura de parens como ususal para expresiones regulares, es decir, 0 para la coincidencia completa, 1 para la primera captura, 2 para el segundo etc., donde el orden de apertura de parens define la numeración de las coincidencias capturadas.

saludos cordiales, Tom

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

Nota Bene: Si desea que sólo mylabel a destacar en la búsqueda/a juego, cambiar eso a

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

aviso de los parens coincidentes en SEARCH-RE, el segundo elemento en la lista.

Cuestiones relacionadas