昨天我得到了有关如何使 \makeindex 工作的帮助(请参阅底部的链接)。我现在意识到,如果我能让 perl 脚本 makeglossaries 工作会更好,因为目前每次我想定义一个额外的词汇表时,我都必须修改 makeindex 的调用参数。当我尝试从 TeXnicCenter 中运行 makeglossaries.bat 时,我收到以下错误消息:
Can't execute C:\Program Files\MiKTeX 2.8\scripts\glossaries\makeglossaries.
文件makeindex是perl脚本,makindex.bat是调用perl脚本的文件,内容如下:
@rem = '-*- Perl -*-
@echo off
perl -S "%~dp0makeglossaries" %*
我希望能够编译的一些示例代码的 MWE 如下:
\documentclass{article}
\usepackage{glossaries}
\newacronym{SEM}{SEM}{scanning electron microscope}
\newacronym{TEM}{TEM}{transmission electron microscopy}
\newacronym{UHV}{UHV}{ultra-high vacuum}
\newglossary{variables}{vrb}{var}{List of variables}
\newglossaryentry{ai}{type=variables,name={a$_i$},sort=ai,description={Distribution coefficient}}
\newglossaryentry{ciI}{type=variables,name={c$_i^{I}$},sort=ciI,description={Concentration of element i}}
\makeglossaries
\begin{document}
\section{First Section} \label{Intro}
Intro. At some point, we used a \gls{SEM}, and the variable \gls{ai}.
\section{List of variables} \label{LoV}
\printglossaries
\end{document}
对于哪里出了问题有什么想法吗?
编辑:
- 如果直接使用 makeindex 就可以工作(在 TeXnicCenter 内部,但没有 makeglossaries perl 脚本)
2 和 3。我不确定脚本和批处理文件在多大程度上按预期工作。以下是我在命令提示符中执行的操作的副本,以检查这一点:
Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp.
C:\Program Files\MiKTeX 2.8\scripts\glossaries>perl makeglossaries asfd ^C at - line 1。
C:\Program Files\MiKTeX 2.8\scripts\glossaries>@rem = '-- Perl --
C:\Program Files\MiKTeX 2.8\scripts\glossaries>perl -S "%~dp0makeglossaries" %* 无法执行 %~dp0makeglossaries。
C:\Program Files\MiKTeX 2.8\scripts\glossaries>perl -S makeglossaries 无法在 @INC 的 ./makeglossaries 第 66 行找到 Getopt/Std.pm。BEGIN 失败 - 编译在 ./makeglossaries 第 66 行中中止。
C:\Program Files\MiKTeX 2.8\scripts\glossaries>copy_makeglossaries 无法执行 C:\Program Files\MiKTeX 2.8\scripts\glossaries\copy_makeglossaries .pl。
C:\Program Files\MiKTeX 2.8\scripts\glossaries>copy_makeglossaries
C:\Program Files\MiKTeX 2.8\scripts\glossaries># @echo off '#' 不是内部或外部命令,也不是可操作程序或批处理文件。
C:\Program Files\MiKTeX 2.8\scripts\glossaries>perl -S "C:\Program Files\MiKTeX 2.8\scripts\glossaries\copy_makeglossaries.pl" 无法执行 C:\Program Files\MiKTeX 2.8\scripts\glossaries\copy_makeglossaries .pl。
它看起来能正常工作吗?至少它正在做一些事情,我猜这意味着 Perl 正在工作(?)。文件 copy_makeglossaries.bat 调用文件 copy_makeglossaries.pl。我想看看在无扩展名的 perl 脚本中添加扩展名是否有帮助,但它并没有改变一切。
昨天的老问题:
答案1
您需要安装 Perl。Windows 有一个免费版本:ActivePerl 社区版。
要调试,不要从编辑器开始,而是
- 检查是否
makeindex
有效,自己运行一下 - 测试 Perl 脚本
- 测试批处理脚本
- 现在您可以测试编辑器集成