Windows 上的 Perl 解释器和词汇表包出现错误

Windows 上的 Perl 解释器和词汇表包出现错误

我是 Latex 的新手。我在 Windows 8.1 系统上使用 TeXStudio 编写了一篇长文档(文档类书籍)。我尝试让词汇表包正常工作,经过大约 2-3 小时的谷歌搜索后,它终于可以正常工作了。MacBook 上的相同 TeXStudio 和完全相同的 *.tex 文件运行完美。

在 Windows 上,当我编译词汇表(F9)时,我得到以下内容:

Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/\\\@input{ <-- HERE (.+)\.aux/ at C:\Program Files\MiKTeX 2.9\scripts\glossaries\makeglossaries line 634.

我不熟悉 Perl 语法,但第 634 行如下:

634 if (m/\\\@input{(.+)\.aux/})
635    {
636       &scan_aux($1);
 .
 .      # v2.04 added
 .      # (Fix provided by Daniel Grund) 
 .      next;
641    }

在 Mac 上编译工作正常。

我想让它在 Windows 系统上运行,因为这是我更常用的专业计算机(我不会在工作时携带 Mac,也不会在家里携带 Win)。

\documentclass[12pt]{book}
...
\usepackage[acronym, toc]{glossaries}
\input{./Tex_files/glossary.tex}
\makeglossaries

glossary.tex 内容如下:

\newacronym{EBL}{EBL}{Electron Blocking Layer}
\newacronym{TFB}{TFB}{name)}

我在第 1 章和第 2 章中两次在文中引用如下。

\acrfull{EBL}
\acrfull{TFB}

我在 \begin{document} 之后使用的 main.tex 文件如下:

\begin{document}
....
\printglossary[type=\acronymtype, title= List of Abbreviations]
\mainmatter
\include{./TeX_files/chapter01} % Chapter 1
\include{./TeX_files/chapter02} % Chapter 2

我从 perl.org 安装了 Strawberry Perl 版本 5.26 64 位,因为在安装之前我收到了消息:“未找到 Perl 解释器”。

我的谷歌搜索没有显示任何相关答案,因此该帖子..如果它是重复的,很抱歉!

提前谢谢了...

亚历克斯

PS. 编辑了文档,添加了序言和其余代码。

答案1

这里的关键是 Windows 上的 Perl 版本。如您所见Perl 文档站点,Perl 5.26 中引入的更改之一是禁止在正则表达式中{使用未转义的括号。}

这意味着makeglossaries脚本中的第 634 行现在被视为错误,必须报告给glossaries软件包作者并修复。正如 Nicola Talbot 所说,这个错误已经修复。

因此,如果可以的话,您应该升级您的glossaries套餐。

如果你不能这样做,你可以自己在这里和其他地方转义括号(通过在括号前面添加反斜杠)

634 if (m/\\\@input\{(.+)\.aux/\})
635    {
636       &scan_aux($1);
 .
 .      # v2.04 added
 .      # (Fix provided by Daniel Grund) 
 .      next;
641    }

或者将您的 Perl 发行版降级至 5.24。

相关内容