词汇表包参考非词汇表项目参见

词汇表包参考非词汇表项目参见

我希望\label在定义首字母缩略词或其他词汇表条目时能够引用章节、表格或其他编辑项目。该glossaries包使用see属性或\glssee命令来设置交叉引用,但交叉引用似乎不支持非词汇表项目,例如章节、表格、图表等。

我尝试过直接输入description类似 的内容see \autoref{whatever},但这看起来与其他词汇表条目不一样。我的 hack 对于首字母缩略词尤其痛苦,如下所示,因为您需要手动输入firstshort

\documentclass{article}

\usepackage[nopostdot,section,numberedsection=autolabel]{glossaries}
\usepackage[pdftex]{hyperref}

\makeglossaries

% the way i'd like it to work...
  \newacronym{ACR}{ACR}{horrible spelling of acronym}
  \glssee[see]{ACR}{sect:acr}

% a way that almost works...
% but it is not consistent the the see= attribute (one is before one is after)
  \newglossaryentry{ACR2}{
    type=\acronymtype,
    name={ACR2},
    description={horrendous spelling of acronym, \emph{see \autoref{sect:acr}}},
    first={horrendous spelling of acronym (ACR2)},
    short={ACR2}
  }

% linking to another glossary entry
  \newglossaryentry{nice-ref}{
    name={nice ref},
    description={nice ref cleanly uses the \texttt{glossaries}
                 packages built-in see attribute to point to ACR.},
    see={another-entry}
  }
  \newglossaryentry{another-entry}{
    name={another entry},
    description={another entry}
  }


\begin{document}

\section{First section}
I'm using \gls{ACR} and \gls{ACR2}.

Now onto interesting things, like \gls{another-entry} and \gls{nice-ref}.

\section{Second section, this one about ACR}
\label{sect:acr}

  \gls{ACR} and \gls{ACR2} are awesome\ldots soooooooo awesome.

  \printglossary

\end{document}

示例输出: 不同行为和无法引用非词汇表项目的示例

答案1

包内部glossaries使用makeindex/xindy交叉引用机制。提供see键和\glssee命令是为了防止拼写错误引用的术语或交叉引用不存在的术语,但您不必使用它们。它们还提供独立于处理器的接口,因为makeindexxindy具有不同的标记交叉引用的方式。使用makeindex,这只需使用带有两个参数的格式化命令即可:第一个是交叉引用的文本,第二个是位置,该位置将被忽略。

因此,您只需定义一个以标签作为参数的命令即可:

\newcommand*{\seeref}[2]{\emph{see} \autoref{#1}}

并使用该命令引用条目,格式如下:

\newacronym{ACR2}{ACR2}{horrible spelling of acronym}
\glsadd[format=seeref{sect:acr}]{ACR2}

以下是完整的 MWE:

\documentclass{article}

\usepackage[nopostdot,section,numberedsection=autolabel]{glossaries}
\usepackage[pdftex]{hyperref}

\makeglossaries

\newacronym{ACR}{ACR}{horrible spelling of acronym}

\newcommand*{\seeref}[2]{\emph{see} \autoref{#1}}

\newacronym{ACR2}{ACR2}{horrible spelling of acronym}
\glsadd[format=seeref{sect:acr}]{ACR2}

% linking to another glossary entry
  \newglossaryentry{nice-ref}{
    name={nice ref},
    description={nice ref cleanly uses the \texttt{glossaries}
                 packages built-in see attribute to point to ACR.},
    see={another-entry}
  }
  \newglossaryentry{another-entry}{
    name={another entry},
    description={another entry}
  }

\begin{document}

\section{First section}
I'm using \gls{ACR} and \gls{ACR2}.

Now onto interesting things, like \gls{another-entry} and \gls{nice-ref}.

\section{Second section, this one about ACR}
\label{sect:acr}

  \gls{ACR} and \gls{ACR2} are awesome\ldots soooooooo awesome.

  \printglossary

\end{document}

得出的结果为:

生成的文档的图像

相关内容