Gedit LaTeX 插件:如何让 bibtex 和 makeindex 也进行编译?

Gedit LaTeX 插件:如何让 bibtex 和 makeindex 也进行编译?

我使用 Gedit LaTeX 插件已有一年多了,但最近我将参考文献转换为 bibtex。据我了解,该插件应该会自动运行bibtexmakeindex但我没有找到。

我有thesis.tex,所以一旦我在 Gedit 中编译完毕,我必须运行:

bibtex thesis 

进而

makeindex -o thesis.and thesis.adx

然后完美地生成最终的 PDF。

有没有关于如何将此过程集成到 Gedit LaTeX 插件中以使其自动发生的想法?使用这些命令并不困难(其实并不困难),但似乎它们应该由 Gedit 运行,但实际上并非如此。

补充一下:我正在运行 Ubuntu 10.04、Rubber 1.1、Gedit 2.30.3、pdfTeX 3.1415926-1.40.10-2.2(TeX Live 2009/Debian)

答案1

Rubber 不能与*.and*.adx文件一起使用,而且似乎无法对其进行配置以使用它们。

但是,可以配置 Gedit LaTeX 插件以在其编译过程中运行任意命令。因此,转到编辑 -> 首选项 -> 插件,选择 LaTeX 插件 0.2(我的是版本 0.2rc3,旧版本可能有所不同),单击配置插件,在工具选项卡中选择 LaTeX -> PDF,单击属性。现在,您可以通过在作业中输入命令并单击添加来添加命令。编辑它们,直到您有以下序列

rubber --inplace --maxerr -1 --short --force --warn all --pdf "$filename"

bibtex $shortname

makeindex -o $shortname.and $shortname.adx

gnome-open "$shortname.pdf"

现在您应该可以在 Gedit 中正常编译它并且它可以工作了。

但是我不得不建议你放弃这个插件。开发人员已经停止开发它了,而且还有很多未解决的 bug。

答案2

我对 Gedit LaTeX 插件的体验不是很好。所以我根据我的 Gedit 设置来回答。

pdfTeX

您可以使用 Gedit 的外部工具功能(它们位于菜单中的工具下)来运行pdflatexbibtex。例如,您可以pdflatex通过以下方式在当前文档上创建一个工具

#!/bin/sh

pdflatex --shell-escape $GEDIT_CURRENT_DOCUMENT_NAME

并将其绑定到一个键(我使用 Ctrl+0)以便更快地执行。

BibTeX

要运行,bibtex您可以制作另一个工具,例如

#!/bin/sh

GEDIT_CURRENT_DOCUMENT_NAME_ROOT=`echo $GEDIT_CURRENT_DOCUMENT_NAME | sed 's/\(.*\)\.tex$/\1/'`
bibtex $GEDIT_CURRENT_DOCUMENT_NAME_ROOT

但是,bibtex我发现通过 write18 自动运行它更有效率。只需添加

\IfFileExists{\jobname.aux}{\immediate\write18{bibtex \jobname.aux}}{}

到文档顶部执行此操作(不要忘记使用pdflatex选项运行--shell-escape)。

制作索引

应该也可以制作一个以makeindex这种方式运行的工具。但我从未尝试过。也许下面的方法可行:

#!/bin/sh

GEDIT_CURRENT_DOCUMENT_NAME_ROOT=`echo $GEDIT_CURRENT_DOCUMENT_NAME | sed 's/\(.*\)\.tex$/\1/'`
    makeindex -o $GEDIT_CURRENT_DOCUMENT_NAME_ROOT.and $GEDIT_CURRENT_DOCUMENT_NAME_ROOT.adx

否则可能通过 write18 来解决?

查看

另外,为了在 Gedit 中查看当前文档,请为其创建一个工具,例如

#!/bin/sh

evince ${GEDIT_CURRENT_DOCUMENT_NAME%.tex}.pdf

答案3

我可以推荐“Gummi”程序,它使用与 Gedit 相同的小部件进行输入,但可以让您在编写和更改时几乎立即看到 pdf。它还具有 bibtex 机制。我认为它很棒。以下是一些屏幕截图:http://gummi.midnightcoding.org/?page_id=4

答案4

对于索引,使用包伊玛克代替制作idx。然后您无需makeindex再调用,但具有完全相同的功能。有关更多详细信息,请参阅软件包文档。

相关内容