bibtex-0.1.0.2: bibtex.cabal
Name: bibtex
Version: 0.1.0.2
License: BSD3
License-File: LICENSE
Author: Henning Thielemann <haskell@henning-thielemann.de>
Maintainer: Henning Thielemann <haskell@henning-thielemann.de>
Homepage: http://www.haskell.org/haskellwiki/BibTeX
Category: Text
Synopsis: Parse, format and processing BibTeX files
Description:
This package allows parsing, formatting and processing of BibTeX files.
BibTeX files are databases for literature for the natbib package
of the LaTeX typesetting system.
.
The package contains two examples:
.
* The first example demonstrates the BibTeX parser
by generating a publication overview from a @.bib@ file.
.
* The second example demonstrates the BibTeX generation
by producing a large @.bib@ file from the tar archive
that cabal-install downloads to your local cabal directory.
.
Both examples will be build as stand-alone executable
when running
.
> cabal install -fbuildExamples bibtex
.
For the first example see the @publications@ directory of this package.
You can start the program and build an example document by running
.
> make pubs
.
Technically the program generates a list of custom @\\nocite@ commands
for the LaTeX package @multibib@.
You can add the custom bibtex field @subtype@ to BibTeX entries
for more detailed categorization of an entry.
See "publications/publications.bib" for examples.
.
The second example can be executed using
.
> make hackbib
.
The file @hackage.bib@ is written to the @hackage@ subdirectory.
The @hackage-bibtex@ program
reads an uncompressed tar archive from standard input
and writes the result bibliography file to standard output.
.
Note that @hackage.bib@ exceeds some limits of standard BibTeX and LaTeX:
There are currently much more than 5000 versions of packages,
the maximum my BibTeX can handle at once.
That is, you can use the bibliography file,
but you cannot cite all entries with @\\nocite*@.
If there are more than 26 uploads by the same author in a year,
the BibTeX style @alpha@ generates identifiers including curly braces
-- like @Thi2009\{@,
which interacts badly with LaTeX's handling of them.
If you reduce the Bibliography file to 5000 entries
and try to generate an overview of all entries with @\\nocite@,
-- @\\nocite{*}@,
then @pdflatex@ hits its limits:
.
> TeX capacity exceeded, sorry [save size=5000]
Tested-With: GHC==6.12.3
Cabal-Version: >=1.6
Build-Type: Simple
Extra-Source-Files:
Makefile
publications/publications.tex
publications/publications.bib
hackage/hackage.tex
hackage/thielemann.tex
Source-Repository head
type: darcs
location: http://code.haskell.org/~thielema/bibtex/
Source-Repository this
tag: 0.1.0.2
type: darcs
location: http://code.haskell.org/~thielema/bibtex/
Flag base2
description: Choose the new smaller, split-up base package.
Flag buildExamples
description: Build example executables
default: False
Library
Build-Depends:
latex >=0.1 && <0.2,
parsec >=2.1 && <3.2,
utility-ht >=0.0.5 && <0.1
If flag(base2)
Build-Depends:
base >= 2 && <5
Else
Build-Depends:
base >= 1.0 && < 2,
special-functors >=1.0 && <1.1
GHC-Options: -Wall
Hs-Source-Dirs: src
Exposed-Modules:
Text.BibTeX.Entry
Text.BibTeX.Format
Text.BibTeX.Parse
Executable publication-overview
If !flag(buildExamples)
Buildable: False
GHC-Options: -Wall
Hs-source-dirs: src
Main-Is: Publications.hs
Executable hackage-bibtex
If flag(buildExamples)
Build-Depends:
old-time >=1.0 && <1.2,
Cabal >=1.6 && <1.16,
tar >=0.3 && <0.5,
utf8-string >=0.3.4 && <0.4,
bytestring >=0.9 && <0.11
Else
Buildable: False
GHC-Options: -Wall
Hs-source-dirs: src
Main-Is: Hackage.hs