[TxMt] Including .bib files in Latex

Refsvik Kjell Are kjell.a.refsvik at hiof.no
Thu Mar 8 21:24:39 UTC 2007


On 8. mar. 2007, at 18.12, Charilaos Skiadas wrote:

> Hi Kjell,
>
> Since you are new to LaTeX, I'll first explain a couple of things  
> on how compiling LaTeX works, and hopefully someone more  
> knowledgeable can correct me.

Splendid. Thanks for getting back to me so quickly. And thank you for  
some very nice screencasts on the subject. Can I suggest one on this  
specific topic as well?

> You of course already know the principal player, the .tex file,  
> where all your LaTeX code works. When you call the Typeset command,  
> it runs on the background a command line tool, which is typically  
> "pdflatex", but it could be "latex" or a host of other programs,  
> but let's keep it simple.

I believe that it is pdflatex that is in use in my setup.

> For the purposes of this discussion, we care about a file  
> called .aux. This is the "auxilliary" file, where LaTeX keeps  
> information it needs as it moves on. For instance if you set a  
> label at some point in your text, via \label, that information is  
> stored in that file. Then later on in the run LaTeX can look for  
> that label in that .aux file whenever you ask it to via something  
> like \ref.
>
> Now, LaTeX does a single pass through the document, meaning that if  
> you make a reference to a label that is created further down, LaTeX  
> doesn't know about it yet, but it will know about it once it is  
> done with the entire file, and that information is kept in  
> this .aux file. The second time that you run LaTeX, it now can find  
> the information in this aux file, since it's stored it there. This  
> is how LaTeX deals with future references. One needs typically more  
> than one runs to get it right.

OK. That seems to be on par with the knowledge I have already.

> Which brings us to the mechanism for dealing with .bib files.  
> The .bib file is a separate file keeping your bibliographies, and I  
> agree that BibDesk is a wonderful program to use for handling that  
> file (kudos to the developers). In fact, our "insert citation ..."  
> command might break if the bib file is not saved in the same format  
> that BibDesk saves it in, so I would strongly encourage you to  
> continue using it.

OK. I have also found that being on a fairly large screen, I have  
found it easier to just grag and grop entries from BibDesk directly  
to the Latex text in order to include something. I would never dream  
of edit my .bib file with TextMate as long as the Bibdesk interface  
is as good as it is :-)

> Now, LaTeX doesn't know anything about this .bib file. It has a  
> \cite command that looks for "citations", and its way of dealing  
> with citations is by \bibitem entries later on in the file. This  
> works exactly like the \ref-\label pairs above.

Sorry to be so dense here but where do the \bibitem command appear?  
In the bibliograpyy.aux file?

> Now it is really ugly to create \bibitem entries manually, and much  
> harder to maintain, and that's where BibTeX and the .bib file come  
> in. In the .tex document you would have a command like \bibliography 
> {filename}, which takes care of the task of creating those \bibitem  
> entries for us. But the problem remains how to get the information  
> out of  the .bib file and into the .aux file, where \cite can get  
> hold of it. So what happens when you run LaTeX is that it stores in  
> the .aux file the fact that it needs the citekeys referred to by  
> the \cite commands. Then you need to run BibTeX, which reads  
> that .aux file, finds those citekeys in the appropriate .bib file  
> that you've told it about via the \bibliography command, and then  
> adds the information from those citekeys in the form of \bibitem  
> commands in a .bbl file. When you now run LaTeX again, it finds  
> those \bibitems and adds them to the resulting pdf file as well as  
> to the .aux file. But this happens at the end of the document, so  
> all the \cite commands previously don't know about it yet, so you  
> need yet another LaTeX run to get those right.
>
> So overall we have:
>
> latex/pdflatex
> bibtex
> latex
> latex
>
> And all this brings us to the suggestion on that web page, which is  
> probably not the right place to look for it. If you read the LaTeX  
> help (Bundles -> LaTeX -> Help), you will find a section about  
> using latexmk.pl. This is a perl script that takes care of all the  
> above, only doing it if it is necessary, and more that I did not  
> mention (namely indexes). If you follow the instructions about  
> enabling it there, then all you have to do is use the standard  
> Typeset command, and it will do all the necessary BibTeX work for you.

Music to my ears. But where can I find this perl script and where do  
I install it?

> Otherwise I would suggest simply to run the BibTeX command whenever  
> you feel the need to, i.e. whenever new citations have been added  
> to the text, and just the compile command as it currently stands,  
> instead of always doing the four steps described above (which is  
> not always needed, for instance if nothing has changed in the bib  
> file). Incidentally, (always performing the four steps described  
> above is what the script you linked to does, so you end up  
> typesetting three times each time, when you could most of the time  
> have typeset only once).

Being a completely newbie to this world, I am not totally sure how to  
perform this in the terminal environment. I was under the impression  
that I could compile it all by compiling the main.tex where all the  
files are linked/included, but nothing seems to happen with the .bib  
file. Could you in short explain how the manual compile happens and  
what commands to issue?

> Ok hoping this was not extremely long, I know it was too long. Let  
> me know if you have problems using latexmk.pl

Well, if you could get back to me on the questions above, I will  
certainly have a go at it.

> Welcome to both TextMate and LaTeX!

Thank you

> Haris Skiadas
> Department of Mathematics and Computer Science
> Hanover College

Kjell Are Refsvik



>
>
> On Mar 8, 2007, at 10:01 AM, Refsvik Kjell Are wrote:
>
>> Hi,
>>
>> Being new to both TextMate and Latex, I find myself in the middle  
>> of a fairly steep learning curve, in addition to starting as a  
>> graduate student.
>>
>> This is my setup: http://home.online.no/~refsvik/TextMate_Latex.jpg
>>
>> ...and as I am using Mac OS X, I have found that BibDesk is a  
>> splendid way of collecting and maintaining bibliography and  
>> publications.
>>
>> Compiling my main.tex works out fairly ok (with a few warnings),  
>> tying together most of my files, but what lacks is the  
>> Bibliography/References entry. There is simply no Bibliography  
>> entry at all in the final .pdf file, and the compiler is telling  
>> me this:
>>
>> Typesetting: ./4_methodology.tex
>>  LaTeX Warning: Citation `Jones:1992' on page 4 undefined on input  
>> line 5.
>>
>>
>> Trying to understand this, I have had a look at this:
>> http://article.gmane.org/gmane.editors.textmate.general/8789/ 
>> match=bibtex
>>
>> ...but still struggle to understand the following:
>>
>> 1. Do the "Bibtex full run" need to be set up for every single  
>> latex project in any way?
>>
>> 2. What does happen to my .bib (bibtex) file in this process? How  
>> is a bibtex file compiled (if that is the correct term) and is it  
>> converted to latex in some way?
>>
>> I would be very grateful if someone could post a small recipe on  
>> the total amount of things to set/do in order to get this to work:
>>
>> 1. The appropriate actions in the bundle editor
>> 2. Setting environment variables accoring to what is needed in the  
>> "Run Bibtex copy" command
>>
>> Best regards,
>>
>> Kjell Are Refsvik
>> Norway
>
>
>
>
>
>
> ______________________________________________________________________
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
> http://lists.macromates.com/mailman/listinfo/textmate




More information about the textmate mailing list