标签的最佳实践(为方程式,定理,项目等添加标签)

标签的最佳实践(为方程式,定理,项目等添加标签)

是否有一些 Latex 样式指南,其中有专门用于标签的部分?我想使用一些持久的标签方案,但不知道任何方案(除了我心中不确定的方案)。

我应该使用什么标签方案?为什么?我想找到以下一些(但不是全部)问题的答案:

  1. 是否应该:将标记环境与标签本身分开(例如thm:label)?为什么?
  2. 我应该使用-_或其他东西作为分隔(例如eq:my_equationsvs eq:my-equationvs eq:MyEquation)吗?
  3. 如何进行嵌套标记?(例如定理环境中的方程式)

我想找到一些成熟的标签方案,这些方案有利于阅读、编辑器中的自动完成和重构。如有任何参考,我将不胜感激。

答案1

1)根据我的个人经验,从类别开始会很有帮助(即 thm:表示定理,eq:表示方程,fig:表示图形......),因为您可能有一个方程和一个图形(例如)在一起,所以您可以将它们称为相同的,并通过类别区分它们。

2)对于标签名称,我喜欢使用下划线来分隔单词,但这只是因为我发现不使用分隔符会非常令人困惑。

3) 我在定理中不使用嵌套标签,但是,当我有一个方程组时,我会使用子方程环境(标记为 1a、1b...)并标记整个方程组,这样当我引用它时,我就会得到数字(在我的例子中是 1),然后我只需手动添加字母即可。我这样做是因为这样可以避免使用太多标签,而且通常效果很好,因为我不会改变这些方程的顺序。

我希望这可以帮助你!

答案2

我使用以下内容。

1) 我同意 @FerranBrosaPlannella 的观点,对类别使用前缀是个好主意。我还认为前缀应该与名称分开,这在某种程度上:是一种标准做法。我不认为像定理、命题、引理、观察等类别应该有不同的前缀。它们的含义基本相同,我有时会改变主意,认为某个东西应该是命题还是引理,所以我thm:对它们都使用前缀。同样,我def:对定义、符号、约定等使用前缀……

2) 我也喜欢将单词分开,并用它_来表示这个。我有时也会-在标签中用它来表示其他东西。例如,有一种东西叫做“I 空间”,如果有一个关于 I 空间分解的定理,我会给它贴上标签thm:I-space_decomposition

3) 例如,当我有一个关于多个条件之间等价性的定理时,我会使用嵌套标签。定理有标签,条件也有标签,因此它们可以从外部单独引用,也可以在证明中本地引用。我用 分隔标签的嵌套部分.,因此这样的标签可能看起来像thm:some_equivalence.condition_1。这样的标签很长,在本地使用时不切实际,因此我定义了一组宏来处理这些本地标签。下面是一个使用示例。

\begin{theorem} \labelblock{thm:main}
    The following are equivatent.
    \begin{enumerate}
        \item First condition. \loclabel{first}
        \item Conjunction of the following: \loclabelblock{second}
        \begin{enumerate}
            \item First part. \loclabel{part_one}
            \item Second part. \loclabel{part_two}
        \end{enumerate}
    \end{enumerate}

    \begin{proof}
        We can refer to item \locref{first} or subitem \locref{second.part_one}. To prove \locequiv{first}{second} we start with showing \locimpl{first}{second.part_one}.
    \end{proof}
\end{theorem}

Now we refer to Theorem \ref{thm:main} and to and item in a theorem: Theorem \itemref{thm:main}{second.part_two}. Now we refer to the item only: \ref{thm:main.second.part_two}.

宏的\labelblock作用与 相同\label,但还存储了标签,因此\loclabel\locref可以使用它。\locref{first}扩展为\ref{thm:main.first}。 当需要多层嵌套时(这种情况很少见),\loclabelblock则使用 —— 它是\loclabel和的组合\labelblock\locimple\locequiv宏只是我的宏的本地版本,用于引用定理中条件之间的蕴涵和等价关系。

答案3

我使用type_chapter_detail样式符号。标签也与源文件名相同(如果标签指向从\input或文件中引入的项目\includegraphics),因此fig_theory_bandstructure很容易与它指向的 .pdf 图配对。可以轻松自动检查以确保所有导入的图都具有\label\ref

我倾向于将表格放在它们自己的 .tex 文件中 ( \input{tab_theory_materials}\label{tab_theory_materials}),主要是为了我可以更轻松地找到源代码,并在我做对时只编译表格。这可以很容易地包装在宏中,\input{#1}\label{#1}但我没有。这种方法可以扩展到复杂的方程式。

我没有使用任何编辑器自动完成功能,因此fig:theory_bandgap样式符号的好处对我来说就失去了。

答案4

分配标签时需要注意的一个重要事项是拼写检查器。许多拼写检查器会将这些标签或其引用选为拼写错误的单词。

因此,我倾向于只使用数字。数字通常不会被识别为拼写错误的单词。

相关内容