如何标记段落内的单词?

如何标记段落内的单词?

这个想法是将其放在\LBL{some_label_name}一个段落中,以便我可以参考该段落中放置的特定点\LBL。我想定义宏\LBL.

不幸的是,必须将其\label放置在带有计数器的环境中。我试过了幻影切片但标签会获取真正的节计数器。我正在使用 hyperref 包。

我怎样才能实现这一点,\deffor\LBL看起来会是什么样子?

答案1

有很多方法。下面是使用\refstepcounter隐式生成锚点。此外,\theword如果通过 调用,则重新定义节号以获取单词,而不是节号\ref

\documentclass{article}
\usepackage{hyperref}
\usepackage{lipsum}
\newcounter{word}
\makeatletter
\newcommand*{\LBL}{%
  \@dblarg\@LBL
}
\def\@LBL[#1]#2{%
  \begingroup
    \renewcommand*{\theword}{#2}%
    \refstepcounter{word}%
    \label{#1}%
    #2%
  \endgroup
}
\makeatother

\begin{document}
  The \ref{word} is referenced.

  \lipsum*[1] \LBL{word} \lipsum[2]

\end{document}

如果单词很复杂,不能用作标签名称,则可选参数有帮助:\LBL[labelword]{weird word}...。\ref{labelword}

相关内容