Al invocar reftex-label
o mediante la tecla de acceso rápido C-c (
se inserta automáticamente una etiqueta en el documento. Para el section
medio ambiente, la etiqueta está bien. Pero para un entorno como theorem
o thm
una etiqueta como \label{thm:pythagoras-theorem-1}
o \label{theorem:pythagoras-theorem-1}
es más adecuada que \label{sec:pythagoras-theorem-1}
. ¿Se puede personalizar reftex-label
la función para que se comporte de esa manera?
\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}
Respuesta1
Tienes que personalizar la variable reftex-label-alist
. Este es un extracto de la cadena de documentación:
reftex-label-alist
es una variable definida enreftex-vars.el
.Lista con información sobre entornos para uso \label-\ref.
Esta cadena de documentos es más fácil de entender después de leer los ejemplos de configuración en el manual.
reftex-label-alist-builtin
También puede resultar instructivo observar los valores predeterminados integrados en la constante .Establezca esta variable para definir adiciones y cambios al valor predeterminado. Lo único que NO DEBE cambiar es
?s
el indicador de tipo para las etiquetas de sección y el SPC para elany
tipo de etiqueta. Estos están codificados en otros lugares del código.El valor de la variable debe ser una lista de elementos. Cada elemento es una lista en sí misma y tiene la siguiente estructura:
(ENV-OR-MACRO TYPE-KEY LABEL-PREFIX REFERENCE-FORMAT CONTEXT-METHOD (MAGIC-WORD ... ) TOC-LEVEL)
Cada entrada de la lista describe un entorno que lleva un contador para usar con \label y \ref, o una macro LaTeX que define una etiqueta como (o dentro) de uno de sus argumentos. Los elementos de cada entrada de la lista son: ...
En resumen, probablemente quieras algo como esto en tu archivo de inicio:
(setq reftex-label-alist
'(("theorem" ?T "thm:" "~ref{%s}"
nil (regexp "[Th]heorems?") nil)))
te sugiero que revisesel manualpara entender la adición anterior. Tenga en cuenta que la ?t
clave está preestablecida para tablas, por lo que la mayúscula ?T
.