4

I have been using the Gedit LaTeX plugin for over a year now, but I recently converted my references to bibtex. It is my understanding that the plugin should run bibtex and makeindex automatically, but I have not found that.

I have thesis.tex, so once I have compiled in Gedit I have to run:

bibtex thesis 

and then

makeindex -o thesis.and thesis.adx

Which then produces the final PDF perfectly.

Any ideas on how to integrate this process into the Gedit LaTeX plugin so it happens automatically? It is not that using these commands is difficult (it is not), but that it seems that they should be run by Gedit when they are not.

Just to add: I am running Ubuntu 10.04, Rubber 1.1, Gedit 2.30.3, pdfTeX 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian)

3
  • If you run rubber -m index --inplace --maxerr -1 --short --force --warn all --pdf "$filename" It works? If so, you can configure Gedit LaTeX plugin to use rubber with the additional argument. Commented Jun 1, 2011 at 2:37
  • Why are your filenames .and and .adx instead of .ind and .idx? Perhaps this is the reason Rubber does not understand what it is supposed to do. Commented Jun 1, 2011 at 4:30
  • @Mateus Araújo Perhaps it is! I am using the package apacite which provides an automatic index section. I have investigated rubber, but i'm not sure what's going on. Commented Jun 1, 2011 at 6:55

4 Answers 4

2
+50

Rubber does not work with *.and and *.adx files, and it seems it's not possible to configure it to use them.

However, it is possible to configure Gedit LaTeX plugin to run arbitrary commands within its compilation procedure. So go to Edit -> Preferences -> Plug-ins, select the LaTeX Plugin 0.2 (mine is version 0.2rc3, older versions may behave differently), click Configure Plug-in, in the tab Tools select LaTeX -> PDF, click on Properties. Now you can add commands by typing them into jobs and clicking add. Edit them until you have the following sequence

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

bibtex $shortname

makeindex -o $shortname.and $shortname.adx

gnome-open "$shortname.pdf"

Now you should compile it normally within Gedit and it should work.

But I have to recommend you to abandon this plugin. The developer has stopped working on it, and there are a lot of outstanding bugs.

7
  • @Mateus Araújo I had already tried that, but rubber fails and it doesn't move on. I have tried other editors, but I keep coming back to gedit, because I have snippets and it inserts bibtex entries etc. I will go away and think about it all. Commented Jun 1, 2011 at 15:00
  • There's a field next to the command called "must succeed". Try unticking that box. Commented Jun 1, 2011 at 16:25
  • Also, if this fails also you can give up on rubber entirely and make your own compilation procedure manually, e.g., pdflatex $filename bibtex $shortname makeindex -o $shortname.and $shortname.adx pdflatex $filename, etc. Commented Jun 1, 2011 at 16:28
  • Actually, unticking "must succeed" took me some way. It still needs multiple recompiles, but I don't have to run the commands externally. Commented Jun 1, 2011 at 16:47
  • 1
    What about adding a second command rubber --inplace --maxerr -1 --short --force --warn all --pdf "$filename" after the first? As makeindex is already taken care of, it might not fail. Commented Jun 1, 2011 at 16:51
2

I haven't had the best experience with the Gedit LaTeX plugin. So I'm answering based on my Gedit setup.

pdfTeX

What you can use it Gedit's external tools feature (they're found under Tools in the menu) to run pdflatex and bibtex. For example you make a tool for pdflatex on the current document by

#!/bin/sh

pdflatex --shell-escape $GEDIT_CURRENT_DOCUMENT_NAME

and bind it to a key (I'm using Ctrl+0) for for faster execution.

BibTeX

To run bibtex you can make another tool such as

#!/bin/sh

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

However, for bibtex I find it more efficient to run it automatically via write18. Just add

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

to the top of your document to do this (don't forget to run pdflatex with the option --shell-escape).

MakeIndex

It should be possible to make a tool to run makeindex this way too. I have never tried it though. Maybe the following will work:

#!/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

Otherwise it might be possible to solve through write18?

Viewing

Also, for viewing your current document in Gedit make a tool for it such as

#!/bin/sh

evince ${GEDIT_CURRENT_DOCUMENT_NAME%.tex}.pdf
1
  • Thanks for the answer. It is not quite what I am looking for. It is no great difficulty to run bibtex and makeindex after Gedit Latex plugin has done its thing. But I would like to get it functioning perfectly, rather than scripting around it. Commented May 26, 2011 at 15:24
1

I can recommend the program "Gummi", which uses the same widget as Gedit for the typing, but lets you see the pdf almost instantly as you write and make changes. It also has a mechanism for bibtex. I think it's fantastic. Here are some screenshots: http://gummi.midnightcoding.org/?page_id=4

3
  • 1
    The question is not asking for alternatives. I have tried plenty of alternatives including Gummi, but I really like Gedit. The question pertains to getting Gedit working in my instance Commented Jun 1, 2011 at 12:38
  • The tool in Gummi for handling bibtex might help you out, though, unless I've misunderstood the question completely.
    – Alexander
    Commented Jun 1, 2011 at 12:41
  • 1
    The question is getting Gedit to autocompile my thesis with rubber or adjunct commands. I can already compile it fine with the two commands given. It just annoys me when a programme doesn't do what I think it can do and I am trying to get it working. Thanks for the suggestions though. Commented Jun 1, 2011 at 12:50
0

For the index, use the package imakeidx instead of makeidx. Then you won't need to call makeindex anymore, but have the exact same functionality. See the package documentation for more details.

1
  • 1
    Welcome to TeX.SX! You can have a look at our starter guide to familiarize yourself further with our format. Commented Aug 6, 2013 at 6:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .