Ответ 1
Возможно, это поможет вам найти решение для вашей специальной настройки. Чтобы проверить это, я настраиваю небольшой тестовый файл 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
как целое число, относящееся к захвату parens как ususal для регулярного выражения, то есть 0
для всего матча, 1
для первого захвата, 2
для второго и т.д., где порядок открытия парсеров определяет нумерацию захваченных совпадений.
С уважением, Том
1: \newcommand{\mylabel}[1]{\label{#1}}
Nota Bene: если вы хотите выделить только mylabel
при поиске/сопоставлении, измените это на
(setq reftex-view-crossref-extra '(("\\oinc" "\\[fn:\\(%s\\):[^]]*?\\]" 1)))
обратите внимание на соответствующие парнеры в SEARCH-RE
, втором элементе в списке.