在 TeXShop 中添加新引擎

在 TeXShop 中添加新引擎

我想在 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从移动InactiveEngines文件夹中。~/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) 将完全编译您的文档。

相关内容