是否可以在 \newglossaryentry 内进行 \censor?

是否可以在 \newglossaryentry 内进行 \censor?

如果我放入\censor\newglossaryentry我会收到此错误:

错误:\glo@liberty@sortvalue 定义中的参数编号非法。

--- TeX 说 ---

什么原因导致了错误?如何解决?

\documentclass{report}
\usepackage[section=section]{glossaries}
\usepackage{censor}
\glsdisablehyper
\makenoidxglossaries
\setglossarystyle{tree}
\newglossary*{secret}{Secret}

\newglossaryentry{liberty}
{
  type=secret,
  name={Liberty},
%  name={\censor{Liberty}},
  description={missile}
}

\begin{document}

%\gls{liberty}
\censor{\gls{liberty}}

\printnoidxglossary[type=secret]

\end{document}

答案1

这是一个解决方法,需要编译两次。

\documentclass{report}
\usepackage[section=section]{glossaries}
\usepackage{censor}
\glsdisablehyper
\makenoidxglossaries
\setglossarystyle{tree}
\newglossary*{secret}{Secret}
\usepackage{xparse}

\newglossaryentry{liberty}
{
  type=secret,
%  name={Liberty},
  name={\censor{Liberty}},
  text={Liberty},
  sort={Liberty},
  description={missile \censor{XYZ}}
}

\begin{document}

\tableofcontents

%\StopCensoring
\censor{\gls{liberty}}\glsadd{liberty}

\printnoidxglossary[type=secret]

\end{document}

在此处输入图片描述 在此处输入图片描述

相关内容