我使用 Gedit LaTeX 插件已有一年多了,但最近我将参考文献转换为 bibtex。据我了解,该插件应该会自动运行bibtex
,makeindex
但我没有找到。
我有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 的外部工具功能(它们位于菜单中的工具下)来运行pdflatex
和bibtex
。例如,您可以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