我想在 TeXShop 中添加一个新引擎,它能够xindy
以以下方式执行命令:
texindy -g meindok.idx
我不想每次都从命令行调用命令,相反,TeXShop 中集成的下拉菜单非常方便。不幸的是,我不知道 TeXShop 中显示的当前引擎保存在哪里。自 2015 年以来一定发生了变化,因为我找到的所有帖子都说你必须创建一个引擎,~/Library/TeXShop/Engines
但该路径不再存在。
答案1
制造texindy
引擎
你texindy.engine
看起来应该是这样的。
#! /bin/bash
PATH=/Library/TeX/texbin:/usr/local/bin:${PATH}
bfname=${1%\.*}
texindy -g "$bfname".idx
确保在文件上设置了可执行位。在终端中输入:
chmod +x ~/Library/TeXShop/Engines/texindy.engine
制定texindy
规则arara
arara
另一种方法是制定一个规则来运行(尽管这两种方法并不矛盾)texindy
。我们可以按照手册makeindex
中给出的规则来做到这一点arara
。
首先,如果还没有这样做的话,请将文件夹arara.engine
从移动Inactive
到Engines
文件夹中。~/Library/TeXShop
然后,您需要创建一个本地配置文件,arara
告诉它在哪里找到您的自定义规则。这应该保存为~/araraconfig.yaml
(即在您的主文件夹中)。
在主文件夹中的某个位置为本地规则创建一个目录。例如,如果您arara
在主文件夹中创建一个文件夹,则可以将以下内容放入其中,但该文件夹可以放在任何地方(例如,我的文件夹位于我的 Dropbox 文件夹中,以便我的所有 Mac 都可以找到它。)您只需在此文件中指定位置即可。
!config
paths:
- /Users/andy/arara
现在,在arara
你创建的文件夹中,我们可以添加以下规则texindy.yaml
!config
identifier: texindy
name: texindy
command: texindy @{style} "@{ getBasename(file) }.idx"
arguments:
- identifier: german
flag: <arara> @{ isTrue( parameters.german, "-g" ) }
这是一条arara
允许您使用 进行调用texindy
的规则arara
。我已设置规则以便能够传递选项-g
;如果您需要其他选项,则需要以类似的方式将它们添加到规则中。
现在,您可以在源文档中输入以下内容,它将自动为您完成所有必要的运行。(您可能需要调整顺序。)
%!TEX TS-program = arara
% arara: pdflatex
% arara: bibtex
% arara: pdflatex
% arara: texindy: { style: german }
% arara: pdflatex
\documentclass{book}
...
\begin{document}
...
\end{document}
答案2
除非你总是想使用,否则xindy -g
你可能不需要做太多的事情来使用 pdflatexmk,只需创建一个platexmkrc
包含以下行的文件即可
$makeindex = "texindy -g %O -o %D %S";
(在此之后添加一个空白行)并将其放在与需要它的项目相同的目录中。PS:该文件的名称以“p”开头,因为它用于项目,并将用于与该文件位于同一目录中的所有文件。然后将行
% !TEX TS-program = pdflatexmk
靠近根文件顶部.tex
。从那时起,使用 Typeset->Typeset (Cmd-T) 将完全编译您的文档。