What's new in Pybtex 0.18
Jul 7, 2014
- Pybtex is now fully case-insensitive (like BibTeX). As a consequence, IEEEtran styles now work corretly.
- Added --preserve-case optoin to pybtex-convert (by default all identifiers are converted to lower case).
- An erorr is reported if two citations have the same key but different case, like in BibTeX. (Example: ddt1999 and DDT1999).
- Fixed parsing unused bibliography entries with strings containing @ characters.
- entry.max$ constant is now set to 250, global.max$ is set to 20000, like in BibTeX.
- Added --strict option to pybtex-convert and pybtex-format (turns warning to errors).
- Strict mode is now enabled by default when using pybtex as a library (exceptions are raised on all errors instead of just printing warnings to stderr).
- Non-strict error handling is still enabled when using pybtex from the command line, for compatibility with BibTeX. Use --strict option if you don't like this.
- Added missing pybtex-format manpage.
New in Pybtex 0.17 (Apr 10, 2014)
- Added pybtex-format utility for formatting bibliography files as HTML, LaTeX, and other supported human-readable formats.
- Added --strict command line option (all warnings become errors).
- Added alpha label style, and alpha and unsrtalpha formatting styles.
- Added support for url, eprint, doi, and pubmed fields in unsrt style.
- Names with hyphens are now abbreviated correctly ("Jean-Baptiste" becomes "J.-B.").
- width$ now uses cmr10 font metrics, like in BibTeX. Non-latin characters are also supported.
- Pythonic style engine now supports @preamble commands.
- Warning on missing fields are now more human-readable.
- When writing BibTeX files, put entry key on the same line with entry type. Fixes warnings in Jabref.
- When using multiple .bib files, macros defined in earlier files are available in subsequent ones (like in BibTeX).
- Fixed parsing .bst files with lines consisting of a single % character.
- Fixed sorting entries without author in author_year_title sorting style.
- Fixed broken CaseInsensitiveDict.get().
- CaseInsensitiveDict is now pickleable.
- Added support for registering plugins at runtime with pybtex.plugin.register_plugin() - useful for using pybtex as a library.
New in Pybtex 0.16 (Apr 10, 2014)
- BibTeX .bib and .bst parsers were completely rewritten. They are now much faster and more BibTeX-compatible.
- Syntax errors and undefined strings in .bib files now result in warnings instead of errors, like in BibTeX.
- Unused entries in .bib files are now skipped, like in BibTeX.
- The case of entry keys is now preserved (in previous versions they were converted to lowercase).
- Pythonic style engine now supports sorting.
- Pythonic style engine: fixed nested optional() blocks.
- Fixed parsing of some names with a Last part but no von part.
- Fixed processing of brace-level-one "special characters" in purify$ BibTeX built-in function.
- Added proper error messages on encoding errors in .bib files.
- The default encoding is now UTF-8 on all platforms.
- pybtex-convert now preserves the order of entries in BibTeX and BibTeXML files.
- The following changes were contributed by Matthias C. M. Troffaes:
- Fixed first_of behavior when non-empty child is followed by a child that has a missing field.
- Fixed crossref lookups when key is not lower case.
- Completed unsrt and plain python styles: they now contain all entry types.
- Added doctree backend for rendering into a tree of docutils nodes.
- Added support for non-string backends.
New in Pybtex 0.15 (Apr 10, 2014)
- Changed license from GPL-3 to MIT.
- Added support for setuptools plugins.
- BibTeX parser: fixed whitespace normalization in concatenated strings.
- BibTeX parser: when parsing multiple BibTeX files, macros defined in earlier files are now available to all subsequent files, like in BibTeX.
- BibTeX .bst interpreter now prints warnings on missing entries, like BibTeX, instead of raising a KeyError.
- call.type$ BibTeX built-in function now uses default.entry for unknown entry types, like in BibTeX.
- substring$ now accepts start=0 and returns an empty string.
- change.case$: fixed incorrect formatting of strings starting with special characters with "t" format.
- Fixed abbreviation of names starting with special characters or non-alphabetic characters.
- Fixed incorrect entry order and duplicated entries with \nocite{*}.
- Added more detailed error messages for already defined variables in .bst files.
New in Pybtex 0.14.1 (Apr 10, 2014)
- Added missing custom_fixers directory to the tarball - needed only for converting the sources to Python 3.
New in Pybtex 0.14 (Apr 10, 2014)
- BibTeX writer: fixed quoting " (double quote) characters.
- BibTeX parser now produces human-readable error messages on unread macros.
- Added error messages on missing data in .aux files.
- Improved performance on very long name lists.
- Added support for Python 3.
New in Pybtex 0.13.2 (Jun 10, 2010)
- BibTeX parser: fixed a bug with parsing strings containing braces, like "Error in {DNA}".
New in Pybtex 0.12 (Nov 30, 2009)
- Pybtex now works correctly with input{filename} in LaTeX files.
- Added a proper change.case$ BibTeX function instead of a stub.
- Added -e/--encoding command line option.
- Fixed non-working --bibtex-encoding option.
- Added proper error messages on missing plugins, file IO errors, some BibTeX interpreter errors, etc.
- Fallback to backslash-encoding when printing messages to the console - to make them printable regardless of the locale.
New in Pybtex 0.10 (Aug 24, 2009)
- Added support for multiple bibliography databases.
- Pythonic bibliography formatter: added helper functions to simplify writing BibTeX-like name formatting styles in Python. Added a tool for automatic conversion of BibTeX {ll}{, ff}-like patterns into Python.
- BibTeX parser: added missing characters to the caracter set of the valid identifiers.
- BibTeX parser: a comma is now allowed between the last field and the closing brace.
- BibTeX name parser: when splitting name parts into words, whitespace at brace level > 0 is now ignored.
- BibTeX name parser: fixed parsing of single-word lowercase names and complex von names, like in "Andrea de Leeuw van Weenen".
- Fixed broken --label-style and --name-style options.
- Added (autogenerated) manpages.
- Added this changelog.