`reftex-label` 関数に、より環境依存のラベルを挿入するように強制するにはどうすればよいでしょうか?

`reftex-label` 関数に、より環境依存のラベルを挿入するように強制するにはどうすればよいでしょうか?

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。これはドキュメント文字列からの抜粋です:

reftex-label-alistは で定義された変数ですreftex-vars.el

\label-\ref で使用する環境に関する情報を含む alist。

このドキュメント文字列は、マニュアルの設定例を読んだ後で理解しやすくなります。定数に組み込まれているデフォルトを確認することreftex-label-alist-builtinも参考になるかもしれません。

この変数を設定して、デフォルトへの追加と変更を定義します。変更してはならない唯一のものは、?sセクション ラベルのタイプ インジケーターと、anyラベル タイプの SPC です。これらは、コードの他の場所にハードコードされています。

変数の値は項目のリストである必要があります。各項目自体がリストであり、次の構造を持ちます。

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

各リスト エントリは、\label および \ref で使用するためのカウンターを持つ環境、または引数の 1 つとして (またはその内部で) ラベルを定義する LaTeX マクロのいずれかを記述します。各リスト エントリの要素は次のとおりです。...

つまり、init ファイルには次のような内容を含めるとよいでしょう。

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

確認してみることをお勧めしますマニュアル上記の追加を理解するために。?tキーはテーブルに事前設定されているので、大文字の . であることに注意してください?T

関連情報