Wie zwingt man die Funktion „Reftex-Label“, ein stärker umgebungsabhängiges Label einzufügen?

Wie zwingt man die Funktion „Reftex-Label“, ein stärker umgebungsabhängiges Label einzufügen?

Durch Aufrufen von reftex-labeloder über den Hotkey C-c (wird automatisch ein Label in das Dokument eingefügt. Für die sectionUmgebung ist das Label in Ordnung. Aber für eine Umgebung wie theoremoder ist thmein Label wie \label{thm:pythagoras-theorem-1}oder \label{theorem:pythagoras-theorem-1}besser geeignet als \label{sec:pythagoras-theorem-1}. Kann man reftex-labeldie Funktion so anpassen, dass sie sich so verhält?

\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}

Antwort1

Die Variable muss noch angepasst werden reftex-label-alist. Hier ein Auszug aus dem Docstring:

reftex-label-alistist eine in definierte Variable reftex-vars.el.

Eine Liste mit Informationen zu Umgebungen für die Verwendung von \label-\ref.

Dieser Doc-String ist nach dem Lesen der Konfigurationsbeispiele im Handbuch leichter zu verstehen. Ein Blick auf die integrierten Standardwerte in der Konstante reftex-label-alist-builtinkann ebenfalls aufschlussreich sein.

Setzen Sie diese Variable, um Ergänzungen und Änderungen am Standard zu definieren. Das Einzige, was Sie NICHT ändern dürfen, ist ?sder Typindikator für Abschnittsbeschriftungen und SPC für den anyBeschriftungstyp. Diese sind an anderen Stellen im Code fest codiert.

Der Wert der Variable muss eine Liste von Elementen sein. Jedes Element ist selbst eine Liste und hat die folgende Struktur:

(ENV-OR-MACRO TYPE-KEY LABEL-PREFIX REFERENCE-FORMAT CONTEXT-METHOD
          (MAGIC-WORD ... ) TOC-LEVEL)

Jeder Listeneintrag beschreibt entweder eine Umgebung mit einem Zähler zur Verwendung mit \label und \ref oder ein LaTeX-Makro, das ein Label als (oder innerhalb) eines seiner Argumente definiert. Die Elemente jedes Listeneintrags sind: ...

Kurz gesagt, Sie möchten wahrscheinlich so etwas in Ihrer Init-Datei:

(setq reftex-label-alist
      '(("theorem" ?T "thm:" "~ref{%s}"
         nil (regexp "[Th]heorems?") nil)))

Ich schlage vor, Sie überprüfendas Handbuchum den obigen Zusatz zu verstehen. Beachten Sie, dass der ?tSchlüssel für Tabellen voreingestellt ist, also das große ?T.

verwandte Informationen