Возможно, это поможет вам найти решение для вашей специальной настройки. Чтобы проверить это, я установил небольшой тестовый файл org
* Heading 1
\oinc{mylabel}
stuff
* Heading 2
otherstuff [fn:mylabel:Display text]
Настройка reftex-view-crossref-extra
на
(setq reftex-view-crossref-extra '(("\\\\oinc" "\\[fn:%s:[^]]*?\\]" 0)))
если поместить точку в \oinc{mylabel}
внутри фигурных скобок и нажать C-c &
, [fn...]
будет выделено и идентифицировано как первое и единственное совпадение.
Редактировать : замените "\\\\oinc"
на регулярное выражение, содержащее метку, определяющую используемые вами макросы, например, "\\\\mylabel\\|\\\\oinc"
. Вы не можете определить эталонные соответствия для стандартных команд \label
и т. Д .; их обработка жестко закодирована; но вы можете определить новую команду для псевдонима стандарта¹, и, используя это для определения ваших меток, вы можете использовать reftex-view-crossref
, чтобы настроить поиск так, как показано здесь,
Подводя итог: MACRO-RE
- это регулярное выражение, совпадающее с макросами без параметров, которые вас интересуют, SEARCH-RE
- это регулярное выражение, которое соответствует вашему желаемому справочному формату и в котором вы должны поместить %s
, которое будет заменено на аргумент макроса соответствует MATCH-RE
. Если ваш SEARCH-RE
содержит круглые скобки захвата, вы можете выделить только часть совпадений захвата, указав третий элемент списка HIGHLIGHT
в качестве целого числа, ссылаясь на вводимые в скобки символы как обычное для регулярного выражения, то есть 0
для всего соответствия, 1
для первого захвата, 2
для второго и т. Д., Где порядок открывающих паренов определяет нумерацию захваченных матчей.
С уважением,
Том
1: \newcommand{\mylabel}[1]{\label{#1}}
Nota Bene: если вы хотите, чтобы при поиске / сопоставлении выделялось только mylabel
, измените его на
(setq reftex-view-crossref-extra '(("\\oinc" "\\[fn:\\(%s\\):[^]]*?\\]" 1)))
обратите внимание на соответствующие символы в SEARCH-RE
, втором элементе в списке.