Ao invocar reftex-label
ou pela tecla de atalho C-c (
um rótulo é inserido automaticamente no documento. Para o section
meio ambiente, o rótulo está bom. Mas para um ambiente como theorem
ou thm
um rótulo como \label{thm:pythagoras-theorem-1}
ou \label{theorem:pythagoras-theorem-1}
é mais adequado que \label{sec:pythagoras-theorem-1}
. É possível personalizar reftex-label
a função para se comportar dessa maneira?
\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}
Responder1
Você tem que personalizar a variável reftex-label-alist
. Este é um trecho da documentação:
reftex-label-alist
é uma variável definida emreftex-vars.el
.Lista com informações sobre ambientes para uso de \label-\ref.
Esta sequência de documentos é mais fácil de entender depois de ler os exemplos de configuração no manual. Observar os padrões integrados na constante
reftex-label-alist-builtin
também pode ser instrutivo.Defina esta variável para definir adições e alterações ao padrão. As únicas coisas que você NÃO DEVE alterar é
?s
o indicador de tipo para rótulos de seção e o SPC para oany
tipo de rótulo. Eles são codificados em outros locais do código.O valor da variável deve ser uma lista de itens. Cada item é uma lista e possui a seguinte estrutura:
(ENV-OR-MACRO TYPE-KEY LABEL-PREFIX REFERENCE-FORMAT CONTEXT-METHOD (MAGIC-WORD ... ) TOC-LEVEL)
Cada entrada da lista descreve um ambiente que contém um contador para uso com \label e \ref, ou uma macro LaTeX definindo um rótulo como (ou dentro) de um de seus argumentos. Os elementos de cada entrada da lista são: ...
Resumindo, você provavelmente deseja algo assim em seu arquivo init:
(setq reftex-label-alist
'(("theorem" ?T "thm:" "~ref{%s}"
nil (regexp "[Th]heorems?") nil)))
Eu sugiro que você verifiqueo manualpara entender a adição acima. Observe que a ?t
chave é predefinida para tabelas, portanto o ?T
.