使用 imakeidx 制作中文索引时 zhmakeindex 被拒绝

使用 imakeidx 制作中文索引时 zhmakeindex 被拒绝

首先,MWE 如下。

\documentclass{ctexart}

\usepackage{imakeidx}
\usepackage[colorlinks,linkcolor=blue]{hyperref}

\makeatletter
\def\imki@progdefault{zhmakeindex}
\makeatother

\makeindex


\begin{document}

    测试三角形\index{三角形}
    
    测试二次曲线\index{二次曲线}
    
    向量\index{向量}
    
    共线\index{共线}
    
    简比\index{简比}

    \printindex
\end{document}

如你所见,我使用zhmakeindex按照上面的方法制作中文索引imakeidx。在编译文件之前tex,我bin链接因为当我uname -a在 Macbook Pro 上的终端中输入时,它会产生如下信息

Darwin Kernel Version 18.7.0: Tue Jun 22 19:37:08 PDT 2021;
root:xnu-4903.278.70~1/RELEASE_X86_64 x86_64

然后将bin文件添加到以下文件夹makeindex

/usr/local/texlive/2022/bin/universal-darwin/

tex使用 XeLaTeX-shell-escape选项编译了该文件,但它说

sh: /Library/TeX/texbin/zhmakeindex: Permission denied

并生成索引页,其中索引项按出现顺序排列,但不按汉语拼音字母顺序排列。

那么哪里出了问题或者我遗漏了什么?没有在我的 Macbook 上安装 Go 编程语言,还是其他原因?

答案1

该消息意味着您没有对二进制文件应用“执行”权限。

从你的终端问题

sudo chmod a+x /Library/TeX/texbin/zhmakeindex

并且您会没事的,只要您使用xelatex该选项调用(或其他引擎)-shell-escape(因为zhmakeindex它不在受限 shell-escape 的允许列表中)。

很有可能,macOS 会拒绝第一次运行该程序。当您信任来源时,请照常操作:在“系统偏好设置”中的“安全设置”面板中,单击“仍然允许”并重新运行,在下一个弹出窗口中单击“打开”。

相关内容