透過呼叫reftex-label
或透過熱鍵,C-c (
標籤會自動插入文件中。對於section
環境來說,標籤很好。但對於像 or 這樣的環境theorem
,像or 這樣的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 使用環境的資訊。
閱讀手冊中的配置範例後,該文件字串更容易理解。查看常量中的內建預設值
reftex-label-alist-builtin
也可能具有啟發性。設定此變數以定義對預設值的新增和變更。您唯一不能更改的是
?s
部分標籤的類型指示符和any
標籤類型的 SPC。這些是硬編碼在代碼中的其他位置的。變數的值必須是項目列表。每個項目本身都是一個列表,並具有以下結構:
(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
.