使用術語表組標題作為部分/章節/等

使用術語表組標題作為部分/章節/等

我正在嘗試用該包製作一本西班牙語小詞典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}

此外,目錄顯示數字而不是實際部分: 在此輸入影像描述

我還嘗試通過手動將未編號的部分添加到目錄中來使用未編號的部分\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}

相關內容