在序言中使用 `see=` 键和新命令 `\acro`

在序言中使用 `see=` 键和新命令 `\acro`

我有下面的代码。由于某种原因,我无法使用的定义\acro来定义序言中的新首字母缩略词。

我可以在 中使用它\begin{document} \end{document}。但是,在这种情况下,我也无法正确显示首字母缩略词条目和see=TV密钥。

我如何使用\acro序言中的定义并打印电视定义see=TV

\documentclass{article}

\usepackage{hyperref}

\usepackage[nomain,acronym,shortcuts]{glossaries}
\makeglossaries

\newcommand*{\acro}[3][]{\newacronym[#1]{#2}{#2}{#3}}

\acro{TV}{Television}
\acro{TVWS}[see=TV]{Television White Spaces}
\newacronym[see=TV]{TVB}{TVB}{Television Broadcast}


\begin{document}

\printglossary[type=\acronymtype,style=list]

\ac{TVWS}\\
\ac{TVB}

\end{document}

答案1

OP 定义

\newcommand*{\acro}[3][]{\newacronym[#1]{#2}{#2}{#3}}

但尝试调用它(为什么?)

\acro{TVWS}[see=TV]{Television White Spaces}

即可选参数在这里位于第二位。使用标准\newcommand方法很难实现这一点,但使用\NewDocumentCommandfromxparse包很容易实现:

\NewDocumentCommand{\acro}{mom}{%
  \IfValueTF{#2}{% Is there an optional 2nd arg?
    \newacronym[#2]{#1}{#1}{#3}%  Yes, there is!
  }{%
    \newacronym{#1}{#1}{#3}% Nope, there isn't!
  }%
}

以下是示例:

\documentclass{article}

\usepackage{hyperref}

\usepackage{xparse}
\usepackage[nomain,acronym,shortcuts]{glossaries}

%\newcommand*{\acro}[3][]{\newacronym[#1]{#2}{#2}{#3}}

\NewDocumentCommand{\acro}{mom}{%
  \IfValueTF{#2}{%
    \newacronym[#2]{#1}{#1}{#3}%
  }{%
    \newacronym{#1}{#1}{#3}%
  }%
}
\makeglossaries

\acro{TV}{Television}
\acro{TVWS}[see=TV]{Television White Spaces}
\newacronym[see=TV]{TVB}{TVB}{Television Broadcast}


\begin{document}

\printglossary[type=\acronymtype,style=list]

\ac{TVWS}

\ac{TVB}

\end{document}

相关内容