我是 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 中引入的更改之一是禁止在正则表达式中{
使用未转义的括号。}
这意味着正如 Nicola Talbot 所说,这个错误已经修复。makeglossaries
脚本中的第 634 行现在被视为错误,必须报告给glossaries
软件包作者并修复。
因此,如果可以的话,您应该升级您的glossaries
套餐。
如果你不能这样做,你可以自己在这里和其他地方转义括号(通过在括号前面添加反斜杠)
634 if (m/\\\@input\{(.+)\.aux/\})
635 {
636 &scan_aux($1);
.
. # v2.04 added
. # (Fix provided by Daniel Grund)
. next;
641 }
或者将您的 Perl 发行版降级至 5.24。