
閱讀手冊時我總是發現標記為 的圖形\label{fig:name}
。我想知道使用這種表示法fig:
而不是從它自己的名稱開始的優點在哪裡。如果在我的文件中我只有數字,那麼當我\ref
使用標籤時沒有數字fig:
會更快,因為我不必fig:
先輸入才能找到我想要的正確數字。我還缺什麼優勢嗎?我應該使用嗎fig:
?
答案1
這裡至少有兩個原因:
它以一種非常明智的方式表達了標籤的含義,在以下所有情況下,標籤的意圖都很簡單,它還可以讓您將彼此有意義的事物分組,
fig:system
並且eq:system
具有系統的含義,一個是一個圖,另一個是方程式。fig:
對於數字tbl:
/tabl:
用於桌子eq:
對於方程式chap:
/chp:
對於章節sec:
對於部分
它通常可以由您的編輯器解析,以便更輕鬆地僅查找圖形/表格/方程式標籤。對於 emacs,有 RefTeX 可以簡化交叉引用系統。其他幾個編輯器也有這樣的交叉引用系統實例。
答案2
除了其他人給出的原因(原始程式碼的可理解性;利用編輯器功能等)之外,如果您使用fancyref
,您還可以自動執行更具描述性的交叉引用。這樣可以輕鬆確保整個文件中交叉引用的格式一致。該系統可以調整為使用您自己喜歡的前綴和標籤,並且可以擴展以涵蓋對文件其他元素的交叉引用。它可以處理普通引用和變數引用,並提供開箱即用的大寫和小寫引用命令。
\documentclass{article}
\usepackage{fancyref}
\begin{document}
\section{A section}\label{sec:mysec}
\begin{figure}
\centering \fbox{A figure}
\caption{My figure}\label{fig:myfig}
\end{figure}
\Fref{sec:myothersec} will demonstrate that \fref{fig:myfig} is fantastic.
\section{Another section}\label{sec:myothersec}
\Fref{fig:myfig} showed whatever my figure showed in \fref{sec:mysec}.
\end{document}
答案3
就我個人而言,我從未使用過這樣的約定(而且 LaTeX 不假設標籤有任何結構),標籤字串實際上只是一個不透明的內部識別碼。如果您發現為相似物件的標籤提供通用前綴很方便,那麼就這樣做,但這肯定不是系統的要求。某些套件和/或編輯器可能會嘗試解析標籤的結構並查找fig:
等,但它們可能不應該這樣做。
答案4
我目前正在寫一些《幾何與拓樸》講義(在德國)。透過該項目,我了解了為什麼標籤的命名空間有意義。
避免雙重標籤:由於雙重標籤,我在沒有像fig:
and sec:
or bsp:
(例如)或 之類的前綴時遇到了問題。thm:
很多時候,我有一個想要參考的圖形和一個定理。命名空間很好地解決了這個問題。
讓程式碼更容易閱讀
避免混淆:有時候,我想參考一些章節。所以我確信該部分有一個標籤,例如\label{lifting}
。但事實上,這個標籤是為一個人物所選擇的。當我有前綴時,這種情況就不會發生。使用前綴,LaTeX 會產生一些前綴??
,並明顯表明我犯了一個錯誤。
當我看到上面的截圖後,我認為對你來說還有另一個好處:
自動完成:我想大多數時候您知道是否要引用圖形、部分、表格或其他內容。這樣,您就可以減少實際需要考慮的元素數量。 (順便問一下,你使用什麼編輯器?我當時仍然使用 gEdit /pluma mot 鍵入 LaTeX...也許你有更好的選擇?)
克萊夫雷夫和範克雷夫:您應該使用的原因有一些\usepackage{cleveref}
(請參閱長答案)。這樣,你可以做類似的事情
\usepackage[nameinlink]{cleveref}
...
As you can see in \cref{sec:abc} ...
這可能會翻譯成
As you can see in section 7
其中連結了「第 7 節」。此外,您可以傳遞語言選項,cleveref
這可能會使翻譯更容易。
因此,使用您自己的標籤命名空間約定有一些重要原因。
合作是使用「眾所周知的命名空間方案」(例如fig:
圖形和sec:
部分)的唯一原因。
然而,LaTeX 並不關心標籤命名空間。它們只是標籤名稱的一部分。