如何使 perl 脚本 [makeglossaries] 在 WinXP 上运行?

如何使 perl 脚本 [makeglossaries] 在 WinXP 上运行?

昨天我得到了有关如何使 \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}

对于哪里出了问题有什么想法吗?

编辑:

  1. 如果直接使用 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 脚本中添加扩展名是否有帮助,但它并没有改变一切。


昨天的老问题:

如何让 [\makeindex] 在我的 WinXP 系统上完全正常工作(在其他系统上也可以工作)

答案1

您需要安装 Perl。Windows 有一个免费版本:ActivePerl 社区版

要调试,不要从编辑器开始,而是

  1. 检查是否makeindex有效,自己运行一下
  2. 测试 Perl 脚本
  3. 测试批处理脚本
  4. 现在您可以测试编辑器集成

相关内容