使用 glossaries-extra 与 bib2gls 时出现 \acl{} 命令问题

使用 glossaries-extra 与 bib2gls 时出现 \acl{} 命令问题

以下示例文档按预期编译示例 1

示例 1:

\documentclass{article}

\usepackage[record,acronym,toc,shortcuts=ac]{glossaries-extra}

\usepackage{relsize} % required for new abbreviation Style long-short-sm
\setabbreviationstyle[\acronymtype]{long-short-sm}

\GlsXtrLoadResources[
    src={entries},
    sort={en-GB}
]

\begin{document}
    Test 1: \ac{se}. % or \cgls{se} % WORKS
    Test 2: \acl{se}. % or \glsxtrlong{se} % WORKS ONLY IF \ac{se} (Test 1) UNCOMMENTED
    \printunsrtglossary[type=\acronymtype,title={List of~acronyms},style=index]
\end{document}

正确的结果。

然而,当\ac{se}(或\cgls{se})命令被注释掉时,结果会抛出一个警告——可能是由于命令\acl{se}( )被或 pdfLaTeX\glsxtrlong{se}忽略造成的——bib2gls示例 2

示例 2:

\documentclass{article}

\usepackage[record,acronym,toc,shortcuts=ac]{glossaries-extra}

\usepackage{relsize} % required for new abbreviation Style long-short-sm
\setabbreviationstyle[\acronymtype]{long-short-sm}

\GlsXtrLoadResources[
    src={entries},
    sort={en-GB}
]

\begin{document}
    Test 1: %\ac{se}. % or \cgls{se} % WORKS
    Test 2: \acl{se}. % or \glsxtrlong{se} % WORKS ONLY IF \ac{se} (Test 1) UNCOMMENTED
    \printunsrtglossary[type=\acronymtype,title={List of~acronyms},style=index]
\end{document}

软件包 glossaries-extra 警告:词汇表条目“se”尚未在输入行 15 上定义。

不正确的結果。

entries.bib应用程序使用的文件内容bib2gls如下。

条目.bib:

% Encoding: UTF-8

@acronym{se,
  long      = {some example},
  short     = {SE},
  timestamp = {31.03.2018}
}

示例 2可以进行修改或修复,以便仅使用\acl{se}( \glsxtrlong{se}) 命令即可工作 – 无需事先使用,例如\ac{se}( \cgls{se})?


编辑#2:完全重新安装 MikTeX 解决了该问题。

编辑:尽管更新到 1.32 版本,但glossaries-extra错误仍然存​​在。

不适用于bib2gls

\documentclass{article}

\usepackage[record,acronym]{glossaries-extra}

\usepackage{filecontents}
\begin{filecontents}{entries.bib}
    @acronym{se,
        long  = {some example},
        short = {SE}
    }
\end{filecontents}

\GlsXtrLoadResources[src={entries}]

\begin{document}
    %Test 1: \gls{se}.\\
    Test 2: \glsxtrlong{se}.
    \printunsrtglossary[type=\acronymtype]
\end{document}

首字母缩略词‘se’未定义

软件包 glossaries-extra 警告:输入行 17 上未定义词汇表条目‘se’。
软件包 glossaries-extra 警告:输入行 18 上未在词汇表‘acronym’中定义任何条目。

取消注释%Test 1: …行或添加\glsadd{se}序言是一种解决方法,但仍然不能解决核心问题。

无需工作bib2gls

\documentclass{article}

\usepackage[record,acronym]{glossaries-extra}

\newacronym{se}{SE}{some example}

\begin{document}
    %Test 1: \gls{se}.\\
    Test 2: \glsxtrlong{se}.
    \printunsrtglossary[type=\acronymtype]
\end{document}

首字母缩略词“se”定义

答案1

的早期版本中存在一个错误,glossaries-extra这意味着像 这样的命令\glsxtrlong无法正确地将记录写入文件.aux。该问题已在 1.30 版中修复,因此请确保您使用的是最新版本。

相关内容