列举并附上说明和标签以供参考

列举并附上说明和标签以供参考

我想创建一个枚举列表,其中包含项目描述和分配的标签,以便每个项目都可以单独引用\ref\nameref

如何手动完成这项工作很明显,但我想节省一点工作,并创建一些命令让 latex 完成这项工作

这是我想要雾化的 LaTeX 代码

\begin{enumerate}[label=\textbf{T\,\arabic*},leftmargin=1cm]
\item \textit{caption} \label{itm:1}
\end{enumerate}

现在我想像这样引用标签

\ref{itm:1}
>> T1
\nameref{itm:1}
>> (T1) caption

通过增加计数器来引用后续项目

任何想法/帮助都将不胜感激

答案1

这使用包装器命令\myitem来获取项目文本并将其存储到其中\@currentlabelname,这是\nameref正确使用“名称”所需要的!

\documentclass{article}

\usepackage{enumitem}

\usepackage{etoolbox}

\usepackage{hyperref}


\makeatletter
\newcommand{\myitem}[2][]{%
  \ifblank{#1}{%
  \item #2%
  }{%
  \item[#1] #2%
  }%
  \protected@edef\@currentlabelname{(\theenumi) #2}
}
\makeatother


\begin{document}
\begin{enumerate}[label=\textbf{T\,\arabic*},leftmargin=1cm]
\myitem{\textit{caption}} \label{itm:1}
\myitem{Some other important text} \label{itm:2}
\end{enumerate}

Now, we use \nameref{itm:1} and \ref{itm:1}

And \nameref{itm:2}
\end{document}

在此处输入图片描述

更新-- 具有自动标记功能,重置枚举列表时要小心!

Ti1枚举第一级的第一个标签,Tii1Tiii1Tiv1更深级别的相关标签。

\documentclass{article}

\usepackage{enumitem}

\usepackage{etoolbox}

\usepackage{hyperref}




\makeatletter
\newcommand{\myitem}[2][]{%
  \ifblank{#1}{%
  \item #2%
  }{%
  \item[#1] #2%
  }%
  \protected@edef\@currentlabelname{(\csname the\@enumctr\endcsname) #2}
  \label{T\romannumeral\@enumdepth\arabic{\@enumctr}}%
}
\makeatother


\begin{document}
\begin{enumerate}[label=\textbf{T\,\arabic*},leftmargin=1cm]
\myitem{\textit{caption}}
\myitem{Some other important text}
\begin{enumerate}[label=\textbf{Foooo\arabic*}]
  \myitem{\textbf{Subitem}}
\end{enumerate}
\end{enumerate}

\clearpage
Now, we use \nameref{Ti1} and \ref{Ti1}

And \nameref{Ti2} or \nameref{Tii1}

\end{document}

在此处输入图片描述

相关内容