texindy 无法运行(ubuntu 20.04,texstudio)

texindy 无法运行(ubuntu 20.04,texstudio)

我正在尝试在文档上运行 texindy。我需要它,因为我用法语写作,而 makeindex 无法理解如何对带有变音符号的单词进行排序。

不幸的是,经过多次尝试,我还是没能让它运行。这是一个 MWE:

\documentclass{scrbook}

\usepackage[texindy]{imakeidx}
\makeindex

\begin{document}

Toto\index{tata}
\printindex

\end{document}

我收到消息:

进程:texindy“mwe-xindy”.idx

错误:EVAL:变量 BINARY 没有值

进程因一个或多个错误而终止(= 因一个或多个错误而结束)

我在 Ubuntu 20.04 下使用 TexStudio 2.12.22。我已检查设置,如您在此处所见:

在此处输入图片描述

在此处输入图片描述

我已经尝试过的一些方法:

  • texindy %.idx用其他各种东西代替
  • 用各种其他选项替换\usepackage[texindy]{imakeidx}(xindy、truexindy、program=xindy、nothing 等等)

其他一些信息:

  • 创建一个 .idx 文件,其中包含:\indexentry{tata}{1},但不包含其他文件(.ind、.ilg、.xdy……)
  • 在日志文件的末尾,我读到了这一点,这让我认为 xindy 和 makeindex 之间存在混淆:

runsystem(makeindex mwe-xindy.idx)...executed safely (allowed).

(./mwe-xindy.ind) [2

我已经检查过 Synaptic(它是用于管理 ubuntu 上已安装程序的软件),并且xindy似乎xindy-rules定期安装。

如果您有关于问题根源的一些信息,我们将提前致谢。

答案1

texindyUbuntu 软件包提供的and/ortexindy本身似乎存在问题xindy。该文件/[relevant path]/xindy/tex/inputenc/latin.xdy包含以下内容:

;; Generated from latin?.xdy


Binary file (standard input) matches

grep这显然是由于运行包含二进制数据而不是文本而导致的错误stdin。当 Clisp 尝试加载此文件时,它会导致错误,variable BINARY has no value因为它认为此行文本是 Lisp 代码,因此Binary必须是变量。

作为一种解决方法,您可以texindy加载不同的文件,例如utf8.xdy。这也具有处理utf-8的明显优势。

您可以通过在终端或 TeXstudio 中运行来手动执行此操作。不过,提供此选项并使用 运行 LaTeXtexindy -C utf8 yourfile.idx更简单。在这种情况下,使用适当的选项为您运行。\makeindexshell-escapeimakeidxtexindy

梅威瑟:

\documentclass{scrbook}

\usepackage[texindy]{imakeidx}
\makeindex[options=-C utf8]

\begin{document}

Toto\index{tata}
\printindex

\end{document}

https://tex.stackexchange.com/a/598924/关于如何在 TeXstudio 中启用 shell 转义。在这种情况下,您不应该为索引按下单独的按钮,只需编译文件本身并imakeidx创建索引。

相关内容