При вызове reftex-label
или с помощью горячей клавиши C-c (
метка автоматически вставляется в документ. Для section
среды метка подходит. Но для среды типа theorem
или больше подходит thm
метка типа \label{thm:pythagoras-theorem-1}
или . Можно ли настроить функцию так, чтобы она вела себя таким образом?\label{theorem:pythagoras-theorem-1}
\label{sec:pythagoras-theorem-1}
reftex-label
\documentclass{article}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}
\begin{document}
\section{Pythagoras' theorem}
\label{sec:pythagoras-theorem}
\begin{thm}\label{sec:pythagoras-theorem-1}
In a right triangle, the square of the length of the hypotenuse is equal to the sum of the squares of the lengths of the other two sides
\end{thm}
\end{document}
решение1
Вам нужно настроить переменную reftex-label-alist
. Это отрывок из docstring:
reftex-label-alist
— это переменная, определенная вreftex-vars.el
.Список с информацией о средах для использования \label-\ref.
Эту строку документа легче понять после прочтения примеров конфигурации в руководстве. Просмотр встроенных значений по умолчанию в константе
reftex-label-alist-builtin
также может быть поучительным.Установите эту переменную, чтобы определить дополнения и изменения к значению по умолчанию. Единственное, что вы НЕ ДОЛЖНЫ менять, это
?s
индикатор типа для меток разделов и SPC дляany
типа метки. Они жестко закодированы в других местах кода.Значение переменной должно быть списком элементов. Каждый элемент сам по себе является списком и имеет следующую структуру:
(ENV-OR-MACRO TYPE-KEY LABEL-PREFIX REFERENCE-FORMAT CONTEXT-METHOD (MAGIC-WORD ... ) TOC-LEVEL)
Каждая запись списка описывает либо среду, содержащую счетчик для использования с \label и \ref, либо макрос LaTeX, определяющий метку как (или внутри) одного из своих аргументов. Элементы каждой записи списка: ...
Короче говоря, вам, вероятно, понадобится что-то вроде этого в вашем файле инициализации:
(setq reftex-label-alist
'(("theorem" ?T "thm:" "~ref{%s}"
nil (regexp "[Th]heorems?") nil)))
Я предлагаю вам проверитьруководстводля того, чтобы понять добавление выше. Обратите внимание, что ?t
ключ предустановлен для таблиц, поэтому заглавная ?T
.