Verwenden Sie Glossargruppenüberschriften als Abschnitte/Kapitel/usw.

Verwenden Sie Glossargruppenüberschriften als Abschnitte/Kapitel/usw.

Ich versuche, mit dem Paket ein kleines spanisches Wörterbuch zu erstellen glossaries. Ich habe versucht, Gruppenüberschriften als Abschnitte neu zu definieren. Dies ist ein MWE ( polyglossiascheint notwendig zu sein, da keine PDF-Ausgabe erfolgt, wenn ich es weglasse):

%!TEX program = xelatex
\documentclass[a4paper,12pt]{article}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\usepackage{hyperref}
\usepackage[automake,style=long,xindy={language={spanish-modern}}]{glossaries-extra}
\newcommand{\entrada}[4][]{%
    \renewcommand*{\glsgroupheading}[1]{%
        \section{\glsgetgrouptitle{##1}}
    }
    \newglossaryentry{#2}%
    {%
        name=#2,%
        symbol=#3,%
        description=#4,%
        #1%
    }%
    \glsadd{#2}%
}
\newglossarystyle{entrada}%
{%
    \renewenvironment*{theglossary}{}{}
    \renewcommand*{\glossaryentryfield}[5]{%
        \par\vspace{0.25\baselineskip}%
        \noindent{}##4\textbf{##2.} {##3}%
    }%
}%
\makeglossaries
\begin{document}
    \tableofcontents
    \entrada{Pollo}{}{Ave}
    \entrada{Carne}{}{Parte blanda de los animales}
    \entrada{Cosa}{}{Objeto de}
    \printglossary[style=entrada]
\end{document}

Was ich bekomme, sind die folgenden Problemzeilen

Undefined control sequence. \glsgroupheading{C}
Undefined control sequence. \glsgroupheading{P}

Darüber hinaus werden im Inhaltsverzeichnis Zahlen anstelle tatsächlicher Abschnitte angezeigt: Bildbeschreibung hier eingeben

Ich habe auch versucht, nicht nummerierte Abschnitte zu verwenden, indem ich sie manuell über zum Inhaltsverzeichnis hinzugefügt habe \addcontentsline, allerdings ohne Erfolg. Gibt es eine Möglichkeit, diese Fehler zu beheben?

Antwort1

Das Problem ist die Verwendung \glsgetgrouptitleim Argument von \section, da dies ein sogenanntes verschiebbares Argument ist, d. h. es wird an verschiedenen Stellen im Dokument ausgeführt. Da \glsgetgrouptitlenicht erweiterbar ist und nirgends im Dokument funktioniert, kann dies nicht funktionieren.

Da in Ihrem Beispiel \glsgetgrouptitleeigentlich nichts passiert, können Sie es einfach weglassen. Beachten Sie, dass Sie es \glsgroupheadingim Glossarstil und nicht in neu definieren sollten \entrada.

%!TEX program = xelatex
\documentclass[a4paper,12pt]{article}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\usepackage{hyperref}
\usepackage[automake,style=long,xindy={language={spanish-modern}}]{glossaries-extra}
\makeglossaries

\newcommand{\entrada}[4][]{%
  \newglossaryentry{#2}%
  {%
    name=#2,%
    symbol=#3,%
    description=#4,%
    #1%
  }%
  \glsadd{#2}%
}
\newglossarystyle{entrada}%
  {%
    \renewenvironment*{theglossary}{}{}%
    \renewcommand*\glossaryheader{}%
    \renewcommand*\glsgroupheading[1]{%
      \section{##1}%
    }%
    \renewcommand*\glsgroupskip{}%
    \renewcommand*{\glossaryentryfield}[5]{%
      \par\vspace{0.25\baselineskip}%
      \noindent{}##4\textbf{##2.} {##3}%
    }%
  }%

\begin{document}

\tableofcontents

\entrada{Pollo}{}{Ave}
\entrada{Carne}{}{Parte blanda de los animales}
\entrada{Cosa}{}{Objeto de}
\printglossary[style=entrada]

\end{document}

verwandte Informationen