3

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)

  • 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. – Mateus Araújo Jun 1 '11 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. – Mateus Araújo Jun 1 '11 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. – Frank Zafka Jun 1 '11 at 6:55
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.

  • @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. – Frank Zafka Jun 1 '11 at 15:00
  • There's a field next to the command called "must succeed". Try unticking that box. – Mateus Araújo Jun 1 '11 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. – Mateus Araújo Jun 1 '11 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. – Frank Zafka Jun 1 '11 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. – Mateus Araújo Jun 1 '11 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
  • 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. – Frank Zafka May 26 '11 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

  • 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 – Frank Zafka Jun 1 '11 at 12:38
  • The tool in Gummi for handling bibtex might help you out, though, unless I've misunderstood the question completely. – Alexander Jun 1 '11 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. – Frank Zafka Jun 1 '11 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.