重新定义词汇表条目

重新定义词汇表条目

我如何重新定义词汇表记录,我正在编写自定义类,并想将一些“默认”词汇表术语定义为类的一部分,但是,可能希望根据具体情况在文档级别重新定义它们。

目前,如果我尝试定义一个已经存在的词汇表记录,它会抛出一个已定义的错误,这与包有关Glossaries

以下是一个示例,其中,在简单类定义中创建了一个词汇表记录,作为默认实例。目前,这可以很好地编译,但是,如果实际文档中尝试重新定义未注释,则会产生错误,报告词汇表记录已存在。

%===================================================
%A Trivial Class
%===================================================
\begin{filecontents*}{democlass_v3.cls}
    \NeedsTeXFormat{LaTeX2e}
    \ProvidesClass{democlass_v3}[6/6/2013 democlass]
    \LoadClassWithOptions{article}

    \RequirePackage{glossaries}

    %<<<<<< FIRST DEFINITION >>>>>>%
    \newglossaryentry{pg}{   
        name={pg.},
        description={Short Page Abbreviation},
        first={pg.},
        firstplural={pp.},
        plural={pp.}
    }
\end{filecontents*}



\documentclass{democlass_v3}

%===================================================
%BELOW REDEFINITION THROWS ERROR IF UNCOMMENTED...
%===================================================
%<<<<<< ATTEMPTED REDEFINITION >>>>>>%
%\newglossaryentry{pg}{
%   name={page},
%   description={Short Page Abbreviation - Redefined},
%   first={page},
%   firstplural={pages},
%   plural={pages}
%}
%===================================================

\begin{document}

The page glossary record is: \gls{pg}

\end{document}

抛出的具体错误是:

Package glossaries Error: Glossary entry 'pg' has already been defined

答案1

我不确定你是否真的想这么做。不过,这里有一种方法:

\documentclass{article}

%%% This will go in the class file
\usepackage{glossaries}
\newcommand{\renewglossaryentry}[1]{%
  \ifglsentryexists{#1}
   {\global\csundef{glo@#1@name}}
   {}
   \newglossaryentry{#1}
}

\newglossaryentry{pg}{   
   name={pg.},
   description={Short Page Abbreviation},
   first={pg.},
   firstplural={pp.},
   plural={pp.}
}
%%% End of code in the class file

\makeglossaries

\renewglossaryentry{pg}{
   name={page},
   description={Short Page Abbreviation - Redefined},
   first={page},
   firstplural={pages},
   plural={pages}
}

\begin{document}

The page glossary record is: \gls{pg}

\printglossaries

\end{document}

只要在重新定义之前没有使用词汇表条目,一切就都会顺利。

在此处输入图片描述

相关内容