创建一种新的交叉引用类型并引用拼写相同的文本

创建一种新的交叉引用类型并引用拼写相同的文本

我想创建 2 个命令

\newcommand\deffeat[1]...
\newcommand\reffeat[1] ...

deffeat命令将打印出类似以下内容的内容\textbf{F001}

并且该reffeat命令将引用deffeat具有相同功能名称且具有完全相同的文本。

我目前的实验使用以下内容:

\newcounter{thefeatures}
\setcounter{thefeatures}{1}

\newcommand{\deffeat}[1]{
    \phantomsection[a]
    %XXX: \tag{F~\{cifeatures}}
    \label{#1}
    \textbf{F~\arabic{thefeatures}}
    \addtocounter{thefeatures}{1}
}

它仍然缺少拼写相同的文本功能(目前我正在使用\ref)。

编辑当前状态:

using cleveref

\newcounter{thefeatures}
\setcounter{thefeatures}{0}

\crefname{thefeatures}{feature}{features}

\newcommand{\deffeat}[1]{
    \phantomsection
    \refstepcounter{thefeatures}
    \label{#1}
    \textbf{F\arabic{thefeatures}}
}

\crefformat{thefeatures}{#2F#1#3}

答案1

默认情况下,\ref仅打印参考编号。查看cleveref包也打印名称。新的引用类型需要一些小的定制,请查看\crefnamecleveref 手册。

请注意,您的示例有几个小缺陷,并且不完整。完整的平均能量损失会更好。无论如何,以下模式应该有助于实现您想要的目标:

\documentclass{scrartcl}
\pagestyle{empty}

\usepackage{hyperref}
\usepackage{cleveref}

\newcounter{thefeatures}
\setcounter{thefeatures}{0}

\crefname{thefeatures}{feature}{features}

\newcommand{\deffeat}[1]{
    \phantomsection
    \refstepcounter{thefeatures}
    \label{#1}
    \textbf{F~\arabic{thefeatures}}
}

\begin{document}
    \deffeat{MyFeature}

    \deffeat{MyFeature2}

    \Cref{MyFeature,MyFeature2}
\end{document}

编译结果

正如您所见,该软件包尽力显得聪明。

请参阅此相关问题:如何获取更完整的参考文献

相关内容