用語集のグループ見出しをセクション/章などとして使用する

用語集のグループ見出しをセクション/章などとして使用する

パッケージを使用して、小さなスペイン語辞書を作成しようとしていますglossaries。グループ見出しをセクションとして再定義しようとしました。これは MWE です (polyglossia省略すると PDF 出力がないため、必要なようです)。

%!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}

私が得た問題は次の通りです

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

さらに、TOC では実際のセクションではなく番号が表示されます。 ここに画像の説明を入力してください

また、 を介して手動で TOC に追加して番号なしセクションを使用しようとしましたが\addcontentsline、失敗しました。これらのエラーを修正する方法はありますか?

答え1

問題は、\glsgetgrouptitleの引数で を使用することです\section。これはいわゆる移動引数であり、ドキュメント内のさまざまな場所で実行されるためです。 は\glsgetgrouptitle拡張可能ではなく、ドキュメント内のどこでも機能しないため、これは機能しません。

例では は\glsgetgrouptitle実際には何も行わないので、省略することができます。\glsgroupheadingではなく、用語集スタイルでを再定義する必要があることに注意してください\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}

関連情報