Difference between revisions of "Automating BibTeX"

From assela Pathirana
Jump to navigationJump to search
m (Text replace - '<pre>' to ' <pre>')
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[LaTeX]] is a very versatile tool which help one regularly writing articles to scientific journals, to save a huge amount of time. On of the important tool in this application is the management of [[wikipedia:bibliography]]<!-- references -->. Hardworking people first write the manuscript and then write the references on by one. Lazy ones (e.g. myself) use a specialized tool to automatically generate the list. [[BibTeX]]([[wikipedia:BibTeX|LNK]]) is such a tool that works with LaTeX. It can produce beautiful error free list of bibliography formatted to the exact specifications of the targeted publication.  
==The Problem==
[[LaTeX]] is a very versatile tool which help one regularly writing articles to scientific journals, to save a huge amount of time. On of the important tool in this application is the management of [[wikipedia:bibliography|bibliography]]<!-- references -->. Hardworking people first write the manuscript and then write the references on by one. Lazy ones (e.g. myself) use a specialized tool to automatically generate the list. [[BibTeX]]([[wikipedia:BibTeX|LNK]]) is such a tool that works with LaTeX. It can produce beautiful error free list of bibliography formatted to the exact specifications of the targeted publication.  


The downside (Ah! There always is one!!) is one has to spend countless hours preparing the list of BibTeX entries (called the ''BibTeX database'') in a format like:<nowiki>
The downside (Ah! There always is one!!) is one has to spend countless hours preparing the list of BibTeX entries (called the ''BibTeX database'') in a format like:<nowiki>
</nowiki><pre><nowiki>
</nowiki>
<pre><nowiki>
@ARTICLE{Dawkins05,
@ARTICLE{Dawkins05,
         author      = {Dawkins, R.},
         author      = {Dawkins, R.},
Line 14: Line 16:
         pages      = {88-89}
         pages      = {88-89}
}
}
</nowiki></pre> which is not exactly the most convieniant task to perform.
==The Solution==
(You must be using either the [[CygWin]] system on windows or one of the UNIX variants like [[Linux]] to make use of this solution. If this sounds foreign, first read [[A_Productive_Desktop_Environment_for_Scientists_and_Engineers| this article]] and [[CygWin| this]].)
[[Image:search-ingenta.png|thumb|IngentaConnet(TM) Search]]
[[Image:search-ingenta2.png|thumb|Copying the Link]]
* First download the file [[:Image:Ingenta2BibTeX.tar.gz|Ingenta2BibTeX.tar.gz]] and unpack the contents and move the resulting  files to somewhere in your <tt>$PATH</tt>:
<pre><nowiki>
tar -xzvf Ingenta2BibTeX.tar.gz
mv ingentabids2bibtex.bash isi2bibtex /usr/local/bin
</nowiki></pre>
</nowiki></pre>
* or anywhere else in your path
<pre><nowiki>
chmod u+x /usr/local/bin/ingentabids2bibtex.bash \
/usr/local/bin/isi2bibtex
</nowiki></pre>
* Now access the [http://www.ingentaconnect.com IngentaConnect] website. Use the [http://www.ingentaconnect.com/search search page]] to get a set of articles that you need to add to your BibTeX database. In the results page, copy the link 'export (plain text)' to the clipboard. It will be a long url  like this:
<pre><nowiki>
http://www.ingentaconnect.com/search?volume=&
journal_type=words&title=&year_from=2001&
title_type=tka&issue=&year_to=2006&journal=Newsweek&
y=13&pageSize=20&author=Dawkins%2c+R.+&
database=0&x=44&format=download
</nowiki></pre>
* Then at your [[wikipedia:Bash|Bash]] prompt run the program ingentabids2bibtex.bash with the above (surrounded with quotes) as argument.:
<pre><nowiki>
$ ingentabids2bibtex.bash '<the url above>'
</nowiki></pre>.
* For example:
<pre><nowiki>
ingentabids2bibtex.bash \
'http://www.ingentaconnect.com/search?volume=&title=multifractal&journal_type
=words&year_from=2001&title_type=tka&issue=&year_to=2006&journal=&y=8&
pageSize=20&author=pathirana%2c+A.&database=0&x=29&format=download'
</nowiki></pre> would result<nowiki>
</nowiki>
<pre><nowiki>
@ARTICLE{Pathirana03,
        author      = {Pathirana, A. and  Herath, S. and  Yamada, T.},
        title      = {Eslimating rainfall distributions at high temporal
          resolutions using a multifractal model},
        journal    = {Hydrology and Earth System Sci.},
        year        = {2003},
        volume      = {7},
        number      = {5},
        pages      = {668-679}
}
@ARTICLE{Pathirana02,
        author      = {Pathirana, A. and  Herath, S.},
        title      = {Multifractal modelling and simulation of rain fields
          exhibiting spatial heterogeneity},
        journal    = {Hydrology and Earth System Sci.},
        year        = {2002},
        volume      = {6},
        number      = {4},
        pages      = {695-708}
}
</nowiki></pre>
You might have to change the keys (Pathirana03, Pathirana02) so that it will not conflict with others already existing in your BibTeX; but there's no question that this is way easier than writing these weird things by hand.
==Acknowledgments==
* The [[wikipedia:Perl|Perl]] script <tt>isi2bibtex</tt> : Copyright (C) 2000 Jonathan Swinton, Ben Bolker, Anthony Stone, John J. Lee, under GNU GPL.
* IngentaConnect is property of Ingenta Plc., USA.
{{Comment|ha}}
[[Category:LaTeX]]

Latest revision as of 19:08, 2 October 2009

The Problem

LaTeX is a very versatile tool which help one regularly writing articles to scientific journals, to save a huge amount of time. On of the important tool in this application is the management of bibliography. Hardworking people first write the manuscript and then write the references on by one. Lazy ones (e.g. myself) use a specialized tool to automatically generate the list. BibTeX(LNK) is such a tool that works with LaTeX. It can produce beautiful error free list of bibliography formatted to the exact specifications of the targeted publication.

The downside (Ah! There always is one!!) is one has to spend countless hours preparing the list of BibTeX entries (called the BibTeX database) in a format like:

@ARTICLE{Dawkins05,
        author      = {Dawkins, R.},
        title       = {UNINTELLIGENT DESIGN - How could these medicore
          theorists be allowed to expose a great science power to worldwide
          ridicule?},
        journal     = {Newsweek},
        year        = {2005},
        volume      = {15-DEC-2005},
        number      = {SPI},
        pages       = {88-89}
}

which is not exactly the most convieniant task to perform.

The Solution

(You must be using either the CygWin system on windows or one of the UNIX variants like Linux to make use of this solution. If this sounds foreign, first read this article and this.)

IngentaConnet(TM) Search
Copying the Link
  • First download the file Ingenta2BibTeX.tar.gz and unpack the contents and move the resulting files to somewhere in your $PATH:
tar -xzvf Ingenta2BibTeX.tar.gz
mv ingentabids2bibtex.bash isi2bibtex /usr/local/bin 
  • or anywhere else in your path
chmod u+x /usr/local/bin/ingentabids2bibtex.bash \
/usr/local/bin/isi2bibtex
  • Now access the IngentaConnect website. Use the search page] to get a set of articles that you need to add to your BibTeX database. In the results page, copy the link 'export (plain text)' to the clipboard. It will be a long url like this:
http://www.ingentaconnect.com/search?volume=&
journal_type=words&title=&year_from=2001&
title_type=tka&issue=&year_to=2006&journal=Newsweek&
y=13&pageSize=20&author=Dawkins%2c+R.+&
database=0&x=44&format=download
  • Then at your Bash prompt run the program ingentabids2bibtex.bash with the above (surrounded with quotes) as argument.:
$ ingentabids2bibtex.bash '<the url above>'

.

  • For example:
ingentabids2bibtex.bash \
'http://www.ingentaconnect.com/search?volume=&title=multifractal&journal_type
=words&year_from=2001&title_type=tka&issue=&year_to=2006&journal=&y=8&
pageSize=20&author=pathirana%2c+A.&database=0&x=29&format=download'

would result

@ARTICLE{Pathirana03,
        author      = {Pathirana, A. and  Herath, S. and  Yamada, T.},
        title       = {Eslimating rainfall distributions at high temporal
          resolutions using a multifractal model},
        journal     = {Hydrology and Earth System Sci.},
        year        = {2003},
        volume      = {7},
        number      = {5},
        pages       = {668-679}
}

@ARTICLE{Pathirana02,
        author      = {Pathirana, A. and  Herath, S.},
        title       = {Multifractal modelling and simulation of rain fields
          exhibiting spatial heterogeneity},
        journal     = {Hydrology and Earth System Sci.},
        year        = {2002},
        volume      = {6},
        number      = {4},
        pages       = {695-708}
}


You might have to change the keys (Pathirana03, Pathirana02) so that it will not conflict with others already existing in your BibTeX; but there's no question that this is way easier than writing these weird things by hand.

Acknowledgments

  • The Perl script isi2bibtex : Copyright (C) 2000 Jonathan Swinton, Ben Bolker, Anthony Stone, John J. Lee, under GNU GPL.
  • IngentaConnect is property of Ingenta Plc., USA.