词汇表:删除词汇表本身中的条目位置

词汇表:删除词汇表本身中的条目位置

为了创建我的词汇表,我混合使用了“正常”条目和自定义双重条目,从而创建了缩写和正常条目。

我的问题:词汇表中的每个条目(自定义和正常)都将词汇表本身显示为第一个位置。

我怎样才能删除该位置(见图)?

第 1 页的词汇表:

在此处输入图片描述

梅威瑟:

% Document
% ====================
\documentclass[11pt, a4paper, oneside, titlepage]{memoir}

%% Glossary
\usepackage[hidelinks]{hyperref}

\usepackage{xparse}
\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m } {
    \newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
        description={#6},#1
    }
    \makeglossaries
    \newacronym[see={[Glossary:]{gls-#3}},#2]{#3}{#4}    {#5\glsadd{gls-#3}}
}

\usepackage[nomain,acronym,toc]{glossaries}

\glsenablehyper
\makeglossaries

\newglossaryentry{gradle}
{
    name={Gradle},
    description={Groovy basiertes Build system.},
    first={Gradle}
}

\newdualentry{adv}              % label
    {ADV}                           % abbreviation
    {Algorithm \& Data Structure Visualizer}    % long form
    {Produkttitel der vorliegenden Bachelorarbeit} % description

\begin{document}

% Glossary
% ====================

\printglossary[title=Glossar und Abkürzungsverzeichnis]
\glsaddall

\chapter{Test}
\section{One}
Lorem \gls{gradle} dolor sit amet.

\chapter{Test2}
\section{TWO}
Lorem \gls{gradle} dolor \gls{adv}  amet.

\end{document}

ps 我的问题类似于这个问题但那里提供的解决方案对我没有帮助

答案1

的定义\newdualentry有误。首先,它包括\makeglossaries,它只应使用一次,并且应放在所有定义之前。\makeglossaries在序言中,第一个 之前已经有了\newglossaryentry,这是正确的,也是它应该出现的唯一位置。

该首字母缩略词的长形式包括\glsadd

\newacronym[see={[Glossary:]{gls-#3}},#2]{#3}{#4}{#5\glsadd{gls-#3}}

使用默认的首字母缩略词样式,长格式将被复制到字段description,这意味着\glsadd{gls-#3}最终会出现在词汇表中,并在词汇表中对该页面进行索引。

此双重输入命令似乎会产生不必要的重复。执行如下操作会更简单、更紧凑:

\documentclass[11pt, a4paper, oneside, titlepage]{memoir}

\usepackage[hidelinks]{hyperref}
\usepackage[nomain,acronym,toc]{glossaries}

\glsenablehyper
\makeglossaries

\setacronymstyle{long-short-desc}

\newglossaryentry{gradle}
{
    name={Gradle},
    description={Groovy basiertes Build system},
    first={Gradle}
}

\newacronym
  [description={Produkttitel der vorliegenden Bachelorarbeit}]
  {adv}% label
  {ADV}% abbreviation
  {Algorithm \& Data Structure Visualizer}    % long form

\begin{document}

% Glossary
% ====================

\printglossary[title=Glossar und Abkürzungsverzeichnis]

\chapter{Test}
\section{One}
Lorem \gls{gradle} dolor sit amet.

\chapter{Test2}
\section{TWO}
Lorem \gls{gradle} dolor \gls{adv}  amet.

\end{document}

词汇表现在如下所示:

词汇表和附录算法和数据结构可视化器 (ADV) 前学士学位论文标题。 3 Gradle Groovy 基础构建系统。 2、3

如果您确实想要双重条目,那么您需要\glsadd从描述中删除:

\documentclass[11pt, a4paper, oneside, titlepage]{memoir}

\usepackage{xparse}

\usepackage[ngerman]{babel}
\usepackage[hidelinks]{hyperref}
\usepackage[nomain,acronym,toc]{glossaries}

\glsenablehyper
\makeglossaries

\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m } {%
  \newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
      description={#6},#1
  }%
  \newacronym[see={gls-#3},description={#5},#2]{#3}{#4}{#5\glsadd{gls-#3}}%
}

\newglossaryentry{gradle}
{
    name={Gradle},
    description={Groovy basiertes Build system},
    first={Gradle}
}

\newdualentry
  {adv}% label
  {ADV}% abbreviation
  {Algorithm \& Data Structure Visualizer}    % long form
  {Produkttitel der vorliegenden Bachelorarbeit} % description

\begin{document}

% Glossary
% ====================

\printglossary[title=Glossar und Abkürzungsverzeichnis]

\chapter{Test}
\section{One}
Lorem \gls{gradle} dolor sit amet.

\chapter{Test2}
\section{TWO}
Lorem \gls{gradle} dolor \gls{adv}  amet.

\end{document}

交叉引用标签似乎有点奇怪词汇表:在词汇表中,所以我省略了它,这意味着标签是从语言敏感中获得的\seename

词汇表和摘要 ADV 算法和数据结构可视化工具。 3,请参见算法和数据结构可视化器算法和数据结构可视化器上个学士学位的成果标题。 3 Gradle Groovy 基础构建系统。 2、3

glossaries-extra扩展包提供了更大的灵活性,还提供了额外的调试设置,该设置提供了可视化标记以显示索引发生的位置。 上面的示例可以调整为使用glossaries-extra。 我已经删除了description={#5}定义中的设置\newdualentry,这意味着\glsadd{gls-#3}长格式末尾的代码也将再次出现在词汇表中。 使用dbug=showwrgloss,此索引由点显示 · 突出显示如下:

中心点被圈起来的词汇表图像

重新添加description={#5}定义:

\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m } {%
  \newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
      description={#6},#1
  }%
  \newacronym[see={gls-#3},description={#5},#2]{#3}{#4}{#5\glsadd{gls-#3}}%
}

并且重新构建后,主文档文本中应该只会显示 · 标记。(请记住debug=showwrgloss在完成调试后将其删除。)

这是使用bib2gls而不是makeindex/ xindy。条目现在按.bib格式定义。例如entries.bib

% Encoding: UTF-8

@dualabbreviationentry{adv,
  short={ADV},
  long={Algorithm \& Data Structure Visualizer},
  description={Produkttitel der vorliegenden Bachelorarbeit}
}

@entry{gradle,
  name={Gradle},
  description={Groovy basiertes Build system}
}

(请注意,这里没有尴尬\glsadd,这就是前面例子中造成干扰的原因。)

文档现在如下所示:

\documentclass[11pt, a4paper, oneside, titlepage]{memoir}

\usepackage[ngerman]{babel}
\usepackage[hidelinks]{hyperref}
\usepackage[record% using bib2gls
]{glossaries-extra}

\setabbreviationstyle{long-short}% glossaries-extra.sty

\renewcommand{\glsxtrpostdescabbreviation}{%
  \ifglsentryexists{dual.\glscurrententrylabel}%
  {, \glsseeformat{dual.\glscurrententrylabel}{}}{}%
}

\GlsXtrLoadResources[
  src={entries}, % data in entries.bib
  combine-dual-locations=dual
]

\begin{document}

% Glossary
% ====================

\printunsrtglossary % glossaries-extra.sty and bib2gls
 [title=Glossar und Abkürzungsverzeichnis]

\chapter{Test}
\section{One}
Lorem \gls{gradle} dolor sit amet.

\chapter{Test2}
\section{TWO}
Lorem \gls{gradle} dolor \gls{adv}  amet.

\end{document}

现在文档构建如下(假设文档名为myDoc.tex):

pdflatex myDoc
bib2gls myDoc
pdflatex myDoc

如果您希望字母组之间有视觉分离(无论是垂直分离还是使用...group样式),那么您需要--group(或-g)开关:

pdflatex myDoc
bib2gls -g myDoc
pdflatex myDoc

词汇表现在如下所示:

词汇表和附录 ADV 算法与数据结构可视化工具,即算法与数据结构可视化工具 算法与数据结构可视化工具 上一页 下一页 本科毕业设计 3 本科毕业设计 3 本科毕业设计 3 本科毕业设计 3

combine-dual-locations=dual选项将位置列表从 ADV 缩写转移到算法 \& 数据结构可视化器条目。

相关内容