我正在尝试使用软件包制作一本小型西班牙语词典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}