RELEASE NOTES FOR VERSION 3.0 * Biber version 2.0 is required for biblatex 3.0 * A new reference context mechanism to allow for future extensions has been introduced. Effectively, this means the following. The 'sorting' option to \printbibliography and \printbiblist is deprecated. You should use the 'sorting' option to \newrefcontext or the \begin{refcontext}\end{refcontext} environment. This allows the sorting list context wider scope over citations etc. too. For example, some information in citations like extrayear depends on the sort list order but until this version, citation sorting was always determined by the global sort list. Therefore it was not too difficult to get into a situation where citations were incorrect for a bibliography list with a defined sorting scheme: \usepackage[sorting=nty]{biblatex} \cite{test1} \cite{test2} \printbibliography[sorting=nyt] In this case, the citation labels may not match the bibliography because the data used to generate the citations are drawn from a different sort list. This was a general issue that entry data was assumed to be the same over all bibliography lists. Only the order of entries was assumed to be different, which is incorrect. The order of items in a bibliography list can impact the actual data contents of items in the case of things like the extra* fields. Now, the above can be solved using the new refcontext mechanism which exposes the sorting context to biblatex: \usepackage[sorting=nty]{biblatex} \newrefcontext[sorting=nyt] \cite{test1} \cite{test2} \printbibliography In this case, the \cite commands pull their data from the "nyt" sorting list data which is also used by the following \printbibliography This is all for biber only. * labelname and labeltitle are now instantiated by biblatex dynamically at output time. Prior to this release, labelname and labeltitle were statically instantiated by biber and put into the .bbl. This does not allow for context-sensitive labelname/labeltitle determination which is foreseen in future extensions. * New "pernottype" and "entryclone" sourcemapping verbs allow for negated matches on entry types and the cloning of entries respectively. Requires biber. * Biber now calculates the length of ranges (like page ranges) so that the various range-length tests are far more accurate. See the "frangelen" field documentation. This is very robust and can deal with roman numerals in just about all of their Unicode and ASCII forms. * When a bibliography field is declared as a "name" field in the data model, all options and counters to decide whether to use it or not are automatically created. This effectively extends the existing "useauthor" and "useeditor" options to all data mode name fields automatically. These options are now just special cases of the general data model name handling mechanism. RELEASE NOTES FOR VERSION 2.9a * Biber version 1.9 is required for biblatex 2.9a * Fixed some bugs with defernumbers option * With biber, the scanner for \mkcomprange will normalise any sequence of dashes with \bibrangedash and any (optionally space-surrounded) comma or semi-colon with \bibrangessep (see docs). Range compression now works properly in citation notes. RELEASE NOTES FOR VERSION 2.9 * Biber version 1.9 is required for biblatex 2.9 * With biber, the \printshorthands functionality is subsumed under a more general "bibliography list" functionality. See the documentation for \printbiblist and the new examples file "92-bibliographylists.tex". Previous list of shorthands macros have legacy aliases for backwards compatibility. * INCOMPATIBLE CHANGE - The generalisation of the \printshorthands facility into a bibliography list printing facility necessitated changing the default bibliography environment name for printing shorthands from "shorthands" to "shorthand" so that it matches the field name it uses. This allows the other relevant "short*" fields to be automatically available with environments, filters etc. for building bibliography lists of abbreviations. The same applies to the default "shorthands" driver which is now called "shorthand". If you (re)define either the "shorthands" bibliography environment or the "shorthands" driver in your style, please change the names to remove the "s" or you will pick up the internal defaults instead. * The data model defining macros are no longer valid in a document (including the preamble). They in fact only ever partially worked as biblatex uses the data model to define some internal macros before the preamble and document is read. Using these macros in a document would lead to strange behaviour sooner or later and so now they are disabled after the data model is loaded and will generate a warning. * The "sortlocale" option no longer passes its value to the biber option of the same name. Biblatex now has its own "sortlocale" option which is used to set the global sorting locale on sorting specifications which don't define one. The ability to define sorting locales per-sortscheme is new in this version. See the PDF documentation. This is unlikely to impact anyone. The biber "sortlocale" option can be use to override the biblatex-specified sorting locales if you need to. RELEASE NOTES FOR VERSION 2.8a * INCOMPATIBLE CHANGE - The "language" option has new values. "language=autobib" changes language for bibliography entries based on the LANGID field and the "autolang" option setting. As a new feature, "language=autocite" does the same for citations. "language=auto" sets both "autocite" and "autobib" and the default is "lanauge=autobib". This is a change from the previous default. If your style sets "language=auto" explicitly, you will get the new citation language switching behaviour and might want to use "language=autobib" to get the old behaviour back. RELEASE NOTES FOR VERSION 2.8 * Biber version 1.8 is required for biblatex 2.8 * Polyglossia is now better supported * The HYPHENATION field is now called LANGID. The old name still works for backwards compat. This field does a lot more than just selecting hyphenation patterns and was misleading. * New field LANGIDOPTS for Polyglossia users allows specification of language-specific options (like variants such as "american" english and babelshorthands etc.). See the biblatex-examples.bib file which has been converted to use the new field names and fields. * "babel" option renamed to "autolang". Old name generates a warning but still works. Since Polyglossia support now basically works, this name is now too package specific. There is a new value "langname" for this option which is Polyglossia only and allows the use of the main polyglossia language switching environment which can use the options given in the LANGIDOPTS field. * New value "year" for "datelabel" option * New internal field "datelabelsource" for package authors specifies which date field the datelabel was generated from. RELEASE NOTES FOR VERSION 2.7a * Bugfix release for 2.7 RELEASE NOTES FOR VERSION 2.7 * Biber version 1.7 is required for biblatex 2.7 * New field EVENTTITLEADDON now part of default data model and default styles * Many citation command enhancements, better flow-of-text integration for \textcite et al. See changelog in PDF doc for details. RELEASE NOTES FOR VERSION 2.6 * Biber version 1.6 is required for biblatex 2.6 * INCOMPATIBLE CHANGE - \DeclareLabelyear is now \DeclareLabeldate so that the extra fields labelmonth and labelday can be generated by biber. The 'labelyear' package option is now called 'labeldate'. The old names will work but will generate warnings. The default definition for \DeclareLabeldate in biblatex.def results in the same behaviour as with the old \DeclareLabelyear. * Localised and fixed string fallbacks now possible as values for labelyear field * Cyclic and cascading RELATED entries now working properly. RELEASE NOTES FOR VERSION 2.5 * Biber version 1.5 is required for biblatex 2.5 * New sourcemap step "entrynull" can be used to completely skip an entry. RELEASE NOTES FOR VERSION 2.4 * Biber version 1.4 is required for biblatex 2.4 * New macro \DeclareStyleSourcemap for style authors who want to define source mappings which are not changed by users using \DeclareSourcemap. Style maps so defined are run after user mappings and before driver default mappings. * New RELATEDOPTIONS field giving more control over the exact options for related entry processing * INCOMPATIBLE CHANGE - \DeclareLabelname, \DeclareLabelTitle and \DeclareLabelyear now have a different syntax in order to prepare for future multi-script support. The change is minor - just wrap all fields in \field{} and don't use any commas to separate fields. For example, the default definition of \DeclareLabelname was: \DeclareLabelname{% shortauthor, author, shorteditor, editor, translator} and is now: \DeclareLabelname{% \field{shortauthor} \field{author} \field{shorteditor} \field{editor} \field{translator} } RELEASE NOTES FOR VERSION 2.3 * Biber version 1.3 is required for biblatex 2.3 * New "append" mode for \DeclareSourcemap so that fields can be combined * Detection of some situations which requires biber or latex reruns. Specifically, when sorting schemes are added or removed, when citations are added or removed, when sorting=none and citation order changes and the interactions of these situations when defernumbers=true. Biblatex should now report that a re-run is required in such situations. * Bugfixes RELEASE NOTES FOR VERSION 2.2 * Biber version 1.2 is required for biblatex 2.2 * Bugfixes RELEASE NOTES FOR VERSION 2.1 * Biber version 1.1 is required for biblatex 2.1 * Custom data models is now looked for in more places. See PDF documentation. Custom data model conflicts are now better processed by biber. * Some improved localisation (Norwegian) and doc fixes. RELEASE NOTES FOR VERSION 2.0 * Biber is now the default backend. Biblatex 2.0 requires biber 1.0. It will not work with any earlier release of biber due to .bcf format changes required to support the new list-local sorting feature. * Biblatex with bibtex as the backend is now frozen at version 1.7. When using biblatex with the option "backend=bibtex" (which must be specified now, the default is backend=biber if no option is specified), biblatex 1.7 will be automatically used. Apart from important bug fixes, no more development will be done on the 1.7 branch which means that users must switch to backend=biber (or don't specify the backend at all) to get version 2.0 and future new features. All major new 2.0 features require biber anyway so this is no real change for bibtex users. * New options to enable counters which track different combinations of information. Here is a summary which contains all tracking options, including the new ones (row marked with with a star, table is also in the PDF documentation): Enabled Enabled Tracked Option field counter information -------------- ---------- -------------- ------------------- labelalpha labelalpha extraalpha label labelyear labelyear extrayear labelname+labelyear *labeltitle --- extratitle labelname+labeltitle *labeltitleyear --- extratitleyear labeltitle+labelyear The naming of the options and counters is a little unintuitive because the original ones were named before requests for the new ones were made. The "Tracked information" column makes clear which information is tracked by the counters. The new counters will appear in the .bbl inside an entry and can be used just like "extraalpha" and "extrayear". The new options controlling the new counters are false by default and are not used by the standard styles. * The biblatex data model is now customisable using the \DeclareDatamodel* macros. This allows the use of new entrytypes and fields, as long as the style supports them. * Controlling initials generation A biblatex macro interface (\DeclareNoinit) is now available to declare regular expressions to strip from names before generating initials for them. This mirrors the Biber config file functionality on a per-document basis. A common use, for example, might be to strip certain prefices from names so that they do not end up as initials. * Fine tuning sorting strings A biblatex macro interface (\DeclareNosort) is now available to declare regular expressions to strip from fields or types of fields for sorting purposes. This mirrors the Biber config file functionality on a per-document basis. A common use, for example, might be to strip "The " from titles for sorting purposes. * Sorting option for bibliography/shorthand lists \printbibliography and \printshorthands now have a "sorting" option so you can choose a sorting scheme for each bibliography/shorthand list instead of using the global sorting scheme. This means that you can issue \printbibliography or \printshorthands as many times as you need to, anywhere in the document and have the resulting list sorted in the way required. * Dynamic datasource modification A biblatex macro interface (\DeclareSourcemap) is now available to allow users to dynamically modify data as it is read by Biber. This can be used to do many things like remove unwanted fields, regularise field contents, add new fields etc. all without write access to the datasource. The biblatex manual has a large section on this feature, with many examples. This feature is identical in functionality to Biber's "sourcemap" option but having a macro interface allows it to be used on a per-document basis. The default mappings for datasource drivers are definable too, using \DeclareDefaultSourcemap * Customisable labels A new macro interface is implemented (\DeclareLabelalphaTemplate) which allows customisation of the label used in alphanumeric styles. The previous static labels are now implemented in terms of the new interface. The biblatex manual has a section on this feature with examples. One edge-case has changed with the new definition of the previous default label generation behaviour: a name with a prefix will now include 3 characters after the prefix instead of 2 ("van Rompel" will be "vRom" instead of "vRo"). The previous behaviour was anomolous anyway. There are options to auto-disambiguate labels in several ways. * Related entries A general method to support "related entries" is implemented. This allows a localisable, flexible way to deal with relationships between entries like "reprint of", "translation of", "reprinted in" etc. Three new entry fields are available to support this - "related", "relatedtype" and "relatedstring". Biber will automatically create "dataonly" clones of the related entries so that their data can be accessed in styles without having to cite them. Related entries may also be cited themselves which does not interfere in any way with this mechanism. The standard styles have been updated to support the new fields. New punctuation macros are available to format the new fields in the bibliography ("relatedpunct", "relateddelim", "related"). * Citation key aliases It is now possible to include a new field "ids" in an entry which is a comma-separated list of citation key aliases. The entry can be cited by any of the aliases, which helps when you updated your entry keys but don't want to change old documents. * Option to sort names only using initials The new option "sortfirstinits" allows users to specify that name sorting only uses initials instead of the full name. Previously, even if "firstinits" was true, sorting used full names. * New citation commands Starred variants of \citeyear and \citedate are now available which include the extrayear information. RELEASE NOTES FOR VERSION 1.7 * Biber update, new features Biblatex 1.7 requires Biber 0.9.6. Biber is now based on Perl 5.14 with full Unicode 6.0 support. There's a bunch of other improvements -- see the Biber manual for details. * XDATA containers [Biber only] This release introduces the new @xdata entry type and the corresponding xdata field. Essentially, the idea is that you can dump frequently used data into an @xdata entry and reference that where needed. It's a bit like crossref but doesn't imply any logical (parent/child) relation. Or, to put it differently, it's a bit like @string but covers more than one field. See the changelog for pointers. * Extended option scoping [Biber only] The package options related to name/list truncation and name disambiguation are now conveniently settable globally/per-type/ per-entry. See the changelog for details. There's also a new appendix with an overview of the scope of all options. * Field formats for dates \printdate and friends now support 'virtual' field formats for all dates. So, even though there is no 'date' field on the LaTeX end of the workflow (only year/month/day and endyear/endmonth/endday), you may now say: \DeclareFieldFormat{date}{\textbf{#1}} to print the date in boldface, for example. Technically, this is equivalent to: \DeclareFieldFormat{date}{\textbf{#1}} \printtext[date]{\printdate} except that it is readily built into \printdate. * Last-resort breakpoints for \url URLs and DOIs consisting mostly or entirely of letters and numbers may run into the margin if the \url command can't find suitable breakpoints. I've introduced additional breakpoints after all numbers and letters in the previous biblatex release in order to deal with particularly nasty DOIS, but this turned out to be to brute a solution. To provide the best of both worlds, this release adds counters which control the penalties associated with the additional breakpoints. They are disabled by default but may be helpful (as a last resort) if you need to deal with long and/or tricky DOIs. See 'biburlnumpenalty' etc. in the manual for details. If you want to enable the additional breakpoints, use high penalties; e.g.: \setcounter{biburlnumpenalty}{9000} * Language support Oleg Domanov contributed support for Russian. Note that the Russian module requires UTF-8. Pieter Belmans updated the Dutch language module. RELEASE NOTES FOR VERSION 1.6 * Biber update, new mapping feature Biblatex 1.6 requires Biber 0.9.4. It will not work with any previous release. Biber now supports user-space field mapping. This means that you can set up mapping rules in the Biber configuration file to deal with non-standard field names in .bib files by mapping them to known field names. * Revised maxnames/minnames options Biber now supports max/mincitenames and max/minbibnames as separate values. This improvement has prompted a refactoring of the corresponding package options. In previous versions, there were three sets of values: max/minnames -> backend+frontend default max/mincitenames -> frontend only max/minbibnames -> frontend only The backend would get max/minnames, the other values were only used on the LaTeX end, defaulting to max/minnames. Depending on the citation style, this could lead to ambiguous citations if max/minnames was out of sync with max/mincitenames. (This wasn't really obvious from reading the manual.) This can no longer happen. The new solution is simpler and error-proof in this respect. The max/mincitenames and max/minbibnames options do what their name indicates and are fully supported by Biber. The max/minnames options now serve as master options which set both max/minbibnames and max/mincitenames: max/minnames -> max/mincitenames -> max/minbibnames max/mincitenames -> frontend+backend max/minbibnames -> frontend+backend We didn't bother to update the BibTeX backend as it is due to be discontinued this fall anyway. The BibTeX backend will get the max/mincitenames values only. * [CAVEAT] Removed local max/minnames and max/minitems options As part of the above change, I've removed the local max/minnames and max/minitems options from \printbibliography and friends to enforce consistency. Please use the global options instead. * Added maxalphanames/minalphanames [Biber only] With Biber, the 'labelalpha' field may now be configured independently of max/mincitenames with the newly introduced package options max/minalphanames. * MD5 hashes, per-name hashes [Biber only] With Biber, the hashes provided in the namehash/fullhash fields are now standard MD5 hashes. This means that they are stable across multiple runs, multiple refsections, and multiple documents. We've also added per-name hashes. Every name in every name list gets an MD5 hash, which is available in the 'hash' field. Note that this field is only available locally in name formatting directives. * Range compression/truncation This release features a new command for range compression (i.e., format "123-128" as "123-8"). The command is configurable, can handle lists of ranges separated by commas and/or semicolons, and also normalizes the dashes. Note that combining this with \mkpageprefix requires the field format to be set up in a specific way. See \mkcomprange in the manual for details. I've also overhauled the command which truncates ranges by only printing the starting page of the range. The original \mkpagefirst has been removed because of its awkward syntax. It is superseded by \mkfirstpage. Note that this change is not backwards-compatible because the syntax of the new command is slightly different. You may need to update some format definitions. RELEASE NOTES FOR VERSION 1.5 * Biber update Biblatex 1.5 requires Biber 0.9.3. It will not work with any previous release. * More name disambiguation modes [Biber only] We've added some additional modes to the 'uniquename' and 'uniquelist' options. Roughly speaking, the new 'min*' modes aim for unambiguous citations (mainly author-year) rather than disambiguating names in a strict way. There's a section in the manual which discusses all the details. See the changelog for pointers to the relevant parts of the manual. RELEASE NOTES FOR VERSION 1.4 * Biber update Biblatex 1.4 requires Biber 0.9 or higher. It will not work with any previous release. * Advanced name disambiguation in citations [Biber only] Name disambiguation in citations has been greatly improved and extended in this release. We're pretty excited about this feature because it has been in the pipeline for such a long time and because Biblatex/Biber is, to the best of my knowledge, the only bibliographic tool providing fully automated disambiguation of names in citations. There are now two options controlling name disambiguation, 'uniquename' and 'uniquelist'. You can use either option stand-alone or combine both. This is best explained by way of example. Consider the following data: John Smith/John Doe 2011 John Smith/Jane Doe 2011 John Smith/Edward Doe 2011 Let's assume we're using the standard 'authoryear' style and set uniquename=false. In this case, we would get the following citations: Smith and Doe 2011a Smith and Doe 2011b Smith and Doe 2011c The extra letter appended to the year (that's the automatically generated 'extrayear' field provided by the 'labelyear' option) disambiguates the citations. Many style guides, however, mandate that the extra letter be used to disambiguate works by the same author(s) only, not works by different authors with the same last name. In order to disambiguate the author's last name, you're expected to add additional parts of the name, either as initials or in full. This is what the 'uniquename' option does. Here are the same citations with uniquename=init: Smith and J. Doe 2011a Smith and J. Doe 2011b Smith and E. Doe 2011 'uniquename=init' restricts name disambiguation to initials. Since the first two Does are still ambiguous at that point, we need to fall back to 'extrayear'. With uniquename=full, names are printed in full where required: Smith and John Doe 2011 Smith and Jane Doe 2011 Smith and E. Doe 2011 In the past, this feature was of limited use since it only worked for entries with a single author/editor. It now works for any name at any point in the list. Since this is only possible with Biber, the feature has been removed entirely from the BibTeX backend. When it comes to lists of names, there's another aspect to ambiguity. Let's call it list ambiguity. Consider the following data: Doe/Jones/Smith 2011 Smith/Johnson/Doe 2011 Smith/Doe/Edwards 2011 Smith/Doe/Jones 2011 Most author-year and author-title styles will truncate long author/editor lists in citations. For example, with maxnames=1 we'd get: Doe et al. 2011 Smith et al. 2011a Smith et al. 2011b Smith et al. 2011c Since the author lists are ambiguous after truncation, the 'extrayear' marker is added by the style in order to ensure unique citations. Here again, many style guides mandate that the extra letter be used to disambiguate works by the same authors only. In order to disambiguate author lists, you're typically required to add more names, exceeding the maxnames/minnames truncation point. The new 'uniquelist' feature introduced in this release does that automatically. With maxnames=1 and uniquelist=true, we get: Doe et al. 2011 Smith, Johnson et al. 2011 Smith, Doe and Edwards 2011 Smith, Doe and Jones 2011 As seen above, the 'uniquelist' option overrides the 'maxnames' setting on a per-entry basis. Essentially, what happens is that the "et al." parts of the citations get expanded to the point of no ambiguity -- but no further than that. 'uniquename' and 'uniquelist' may also be combined. Consider the following data: John Doe/Jane Smith/William Jones 2011 John Doe/John Smith/William Jones 2011 John Doe/Edward Smith/William Jones 2011 John Doe/John Edwards/William Jones 2011 John Doe/John Edwards/Jack Johnson 2011 With maxnames=1: Doe et al. 2011a Doe et al. 2011b Doe et al. 2011c Doe et al. 2011d Doe et al. 2011e With maxnames=1, uniquename=true, uniquelist=true: Doe, Jane Smith et al. 2011 Doe, John Smith et al. 2011 Doe, E. Smith et al. 2011 Doe, Edwards and Jones 2011 Doe, Edwards and Johnson 2011 If multiple disambiguation options are active, names are disambiguated first and works last. The order is as follows: 1. uniquename 2. uniquelist 3. extrayear, singletitle Adding this feature to existing styles is simple. The 'uniquename' information needs to be evaluated in the name formatting directive which controls the formatting of the 'labelname' list. The default definition in biblatex.def is responsive to the 'uniquename' option. If you're using that, just enable the package option and that's it. If you're using a different format, check biblatex.def on how to incorporate the 'uniquename' feature. Adding support for 'uniquelist' is also trivial. If the second optional argument of \printnames is omitted (i.e., no explicit range is specified), \printnames{labelname} will print the 'labelname' list up to the truncation point defined with the 'maxnames'/'minnames' package options. If 'uniquelist' is enabled, it will simply override 'maxnames' on a per-entry basis, i.e., \printnames will print the 'labelname' list up to point of no ambiguity. Unless you're specifying explicit ranges, all you need to do is enable the 'uniquelist' package option. * Name disambiguation in standard styles [Biber only] All standard author-year and author-title styles now enable uniquename/uniquelist disambiguation. Of course this only works when using Biber. RELEASE NOTES FOR VERSION 1.3 The list of changes in Biblatex is fairly short this time. Most of the big feature improvements are found in Biber. * Biber 0.8.3, Biber in TeX Live main. Update Biber to version 0.8.3 when upgrading to biblatex 1.3. Note that Biber is now available from the main TeX Live repository. This means that you don't need to point tlmgr to TLContrib any more. It also implies that more architectures are supported. * Experimental Zotero and EndNote import [Biber only] Biber now features import support for the Zotero RDF/XML and EndNote XML formats. See the Biber manual for details and caveats. * Fine-grained name delimiter/spacing controls [Biber only] The spacing between name parts and line breaks in names can now be customized in great detail, especially with Biber. With BibTeX, customization is much more limited but still possible to some extent. See the manual for details. * Added citation counter As its name suggests, the new 'citecounter' feature counts citations, i.e., it indicates how many times an entry is cited in a reference section. The value of the 'citecounter' counter refers to the total per-entry/per-refsection citation count. The counter works much like the citation trackers. It is useful for styles which handle initial and repeated citations differently. For example, you may want to suppress the introduction of a shorthand of an entry in the initial citation if it is cited only once anyway. * Added \smartcite command I've added a new citation command called \smartcite (along with \Smartcite, \smartcites, etc.). Essentially, this is a \footcite command which behaves like \parencite when used in a footnote. It's particularly useful in conjunction with autocite=footnote as it makes \autocite even more versatile. Style authors should note that the default setup for autocite=footnote has been modified and now uses \smartcite instead of \footcite. Providing a \smartcite command is straightforward. In most cases, all you need to do in your style is duplicate the definition of \footcite and adapt the wrapper code like so: \DeclareCiteCommand{\smartcite} [\iffootnote{\mkbibparens}{\mkbibfootnote}] {...} {...} {...} {...} RELEASE NOTES FOR VERSION 1.2 * Remote resources, experimental RIS import [Biber only] Biber 0.8 features support for remote .bib files (HTTP/FTP) and experimental RIS file import. See the Biber manual and \addbibresource in the biblatex manual for details. * \bibliography superseded by \addbibresource As Biber development opens new possibilities, I've refactored the user interface for specifying bibliographic resources. \bibliography is superseded by \addbibresource. There are two differences when using \addbibresource: 1) Always give the full file name, do not omit the .bib extension. 2) No comma-separated lists, use one \addbibresource per bib file. For example, the old form: \bibliography{file1,file2} is superseded by: \addbibresource{file1.bib} \addbibresource{file2.bib} \addbibresource also supports options: \addbibresource[location=local,type=file,datatype=bibtex]{file1.bib} You only need to specify options which differ from the defaults (local/file/bibtex), e.g.: \addbibresource[datatype=ris]{file.ris} \addbibresource[location=remote]{ftp://192.168.3.57/~fred/file1.bib} The change is fully backwards compatible since \bibliography is still available. There is no need to update existing files but \addbibresource is the recommended way for new files. * Smart/customizable 'crossref' data inheritance [Biber only] Biber has been supporting 'crossref' customization for some time but the biblatex user interface was still missing. This release finally adds a user interface. This means that you may configure how the data is inherited from the entry the 'crossref' field refers to. The manual has all the details, including the default settings. If you're using the 'crossref' field, this change is a significant one since the smart data inheritance is set up by default. By 'smart' I mean a sensible parent/child field mapping which replaces BibTeX's symmetric mapping. There is no need any more to duplicate fields. BibTeX crossref: book -> inbook ----------------------------------- title -> title booktitle -> booktitle Biber crossref: book -> inbook ----------------------------------- title -> booktitle * New multi-volume entry types There are four new entry types in this release: mvbook, mvcollection, mvproceedings, mvreference. They are similar to the established types without the 'mv' prefix but indicate a multi-volume work explicitly. This difference is crucial of you want to leverage Biber's 'crossref' support because titles are inherited differently in this case: book -> inbook ----------------------------------- title -> booktitle subtitle -> booksubtitle titleaddon -> booktitleaddon mvbook -> inbook ----------------------------------- title -> maintitle subtitle -> mainsubtitle titleaddon -> maintitleaddon RELEASE NOTES FOR VERSION 1.1 Starting with this release, we'll leverage the possibilities of Biber to support features not possible with BibTeX. That's why most major new features in this release are 'Biber only'. * Biber update Update Biber to version 0.7 when installing Biblatex 1.1. The latest Biber is available from this location: http://sourceforge.net/projects/biblatex-biber/files/ biblatex-biber/current/ Ready-to-run binaries are here: http://sourceforge.net/projects/biblatex-biber/files/ biblatex-biber/current/binaries/ * Configurable sorting schemes [Biber only] This release introduces configurable sorting schemes. With Biber, you may now set up arbitrary sorting specs. The new custom sorting specs are very powerful and come with a flexible user interface. See \DeclareSortingScheme, \DeclareSortExclusion, and \DeclarePresort in the manual for details. Like the predefined sorting specs, new ones are activated with the 'sorting' option. If you are using Biber, all known sorting schemes are still available by default, but they are now defined in biblatex.def instead of being hard-coded in the backend. If you are using BibTeX, note that the old hard-coded schemes in biblatex.bst have not been altered. They continue to work as they did before, but you can't modify them or define new ones. * Configurable 'labelname'/'labelyear' [Biber only] The special fields 'labelname'/'labelyear' may now be customized by style authors. In conjunction with the configurable sorting schemes, this dramatically increases biblatex's flexibility, especially with author-year, author-title, and verbose styles. See \DeclareLabelname and \DeclareLabelyear in the manual for details. * Introducing per-type package options Starting with this release, certain package options may be set on a per-type basis. Use the new optional argument of \ExecuteBibliographyOptions to specify the type. Note that most per-type options are 'Biber only'. For details, see the rather lengthy list of per-type options in the changelog. * Improved static entry sets [Biber only] Static entry sets (i.e., @set entries in the bib file) are now natively supported by Biber. This means that instead of the rather convoluted old setup: @Set{set1, entryset = {key1,key2,key3}, crossref = {key1}, } @Article{key1, entryset = {set1}, author = {...}, title = {...}, ... } @InCollection{key2, entryset = {set1}, author = {...}, title = {...}, ... } @Article{key3, entryset = {set1}, author = {...}, title = {...}, ... } defining a static set is now as simple as this: @Set{set1, entryset = {key1,key2,key3}, } The 'crossref' in the @set head entry and the 'entryset' pointers in the member entries are no longer required. Defining a static set is now as simple as adding a @set entry with an 'entryset' field specifying the set. That's all. Since there are no 'entryset' pointers in the member entries, the members may be part of a set in one document/refsection and stand-alone references in another one, depending on the presence of the @set entry. If the @set entry is cited, the set members are grouped automatically. If not, they behave like regular entries. * Introducing dynamic entry sets [Biber only] Dynamic entry sets are a new way of grouping entries. They differ from static ones in that they are not defined in the bib file but declared in the document, i.e., they work on a per-document/ per-refsection basis. Instead of defining a set in the bib file: @Set{set1, entryset = {key1,key2,key3}, } you declare it like that in the document: \defbibentryset{set1}{key1,key2,key3} This works anywhere in the document, including the document body. Apart from that, dynamic entry sets work exactly like static ones. See the manual for more information. * mcite/mciteplus-like citation commands [Biber only] Users of the mcite/mciteplus packages are already familiar with the concept of a dynamic entry set. With mcite/mciteplus, sets are defined as they are cited. To facilitate migration to biblatex, this release comes with a special citation module which provides mcite/mciteplus-like citation commands on top of the commands provided by the main citation style. For example, the following command: \mcite{setA,*keyA1,*keyA2,*keyA3} is equivalent to this: \defbibentryset{setA}{keyA1,keyA2,keyA3}\cite{setA} Note that there is a syntactical difference between biblatex's dynamic entry sets and the citation grouping of mcite/mciteplus. With mcite/mciteplus, the first set member plays double-duty as group identifier. With biblatex, an entry set is an entity in its own right which requires a unique entry key. For example, an mcite citation group is declared like this: \cite{keyA1,*keyA2,*keyA3} In contrast to that, a dynamic entry set defined with one of the commands provided by biblatex's 'mcite' package option is set up like that: \mcite{setA,*keyA1,*keyA2,*keyA3} Note the extra identifier 'setA': this is the entry key assigned to the set. See the manual for further details. * Low-level bibliography filters The \defbibfilter command and the 'filter' option of \printbibliography are now supplemented by \defbibcheck and the corresponding 'check' option. Conceptually, a 'check' is like a filter controlling which entries are included in a certain (sub-)bibliography. In contrast to filters, however, the checks don't use a high-level syntax. Checks are macros which directly employ the low-level conditionals of biblatex's data interface. Here's an example 'check' which tests if an entry has an abstract: \defbibcheck{hasabstract}{% \iffieldundef{abstract}{\skipentry}{}% } ... \printbibliography[check=hasabstract] This will only print entries with an 'abstract' field. More complex checks are possible as well. For example, this check will exclude all entries published prior to the year 2000: \defbibcheck{recent}{% \iffieldint{year} {\ifnumless{\thefield{year}}{2000} {\skipentry} {}} {\skipentry}} See the manual for further details. * More flexible 'maxnames'/'minnames' controls I've added some additional package options related to 'maxnames'/ 'minnames'. See 'maxbibnames'/'minbibnames' and 'maxcitenames'/ 'mincitenames' in the manual. The new options don't introduce entirely new functionality. They are rather convenience options which allow setting 'maxnames'/ 'minnames' in a more flexible way. For example, setting the 'maxbibnames' option like this: \usepackage[maxnames=3,maxbibnames=99]{biblatex} is equivalent to: \usepackage[maxnames=3]{biblatex} \begin{document} ... \printbibliography[maxnames=99] 'maxcitenames' does the same for all citations. * Defining and resetting per-type formats \DeclareFieldFormat and related commands support per-type formatting directives. By default, biblatex uses this feature to format the 'title' field depending on the entry type. For example, book titles are printed in italics, article titles use quotes instead. In previous releases, lines like the following ones were found in biblatex.def: \DeclareFieldFormat{title}{\mkbibemph{#1}} \DeclareFieldFormat[article]{title}{\mkbibquote{#1}} \DeclareFieldFormat[inbook]{title}{\mkbibquote{#1}} ... This release brings two new features related to that. 1) \DeclareFieldFormat and related commands now support a comma-separated list of entry types. This facilitates the definition of per-type formats: \DeclareFieldFormat{title}{\mkbibemph{#1}} \DeclareFieldFormat[article,inbook,...]{title}{\mkbibquote{#1}} 2) \DeclareFieldFormat and friends now come with a starred variant which resets all type-specific formats. With previous releases, removing or modifying the formatting could be tedious if you didn't make that book/article distrinction. You had to change the default plus all type-specific formats: \DeclareFieldFormat{title}{#1} \DeclareFieldFormat[article]{title}{#1} \DeclareFieldFormat[inbook]{title}{#1} ... The new starred commands do that in one shot: \DeclareFieldFormat*{title}{#1} Note that the default formatting has not been altered. It's just a bit easier to modify it now. * New option 'mergedate' (authoryear style) By popular request, I've added a 'mergedate' option to the 'authoryear' bibliography style. The option controls whether or not the date label is merged with the date specification in the bibliography. For example, while mergedate=false outputs: Doe, John (2008a). Article. In: Journal 23.5 (May 2008), pp. 5-24. mergedate=true will print: Doe, John (May 2008a). Article. In: Journal 23.5, pp. 15-34. Note that 'mergedate=true' is in fact the old behavior (and the default setting). 'mergedate=false' is the new feature! RELEASE NOTES FOR VERSION 1.0 Here it finally is, the long-awaited first stable release of biblatex. As the 0.9* releases have proven to be very mature and reliable, this release is essentially 0.9e with some localization updates and minor tweaks. It concludes the 0.9 development cycle rather than introducing completely new features. The stable status basically has two consequences. 1) We'll try to be more cautious in terms of backwards compatibility in the future and 2) Biblatex moves to a different location on CTAN. See below for details. * Development Roadmap Over the course of the 1.x development cycle, you'll increasingly see new features being added which are tagged as 'Biber only' in the manual. The BibTeX backend of Biblatex will be maintained for some more time but it won't receive any feature updates. There is a simple reason for that: the kind of features we'll introduce can't be handled by BibTeX (that's why we have Biber, after all). While you can stay with the BibTeX backend for some more time, it's highly advisable to switch to Biber fairly soon as BibTeX support will be discontinued at some point. To give you an idea of the timescale: we're talking months rather than years. * New location on CTAN The package moves from tex-archive/macros/latex/exptl/biblatex/ to tex-archive/macros/latex/contrib/biblatex/ The pre-bundled TDS archive moves from tex-archive/install/macros/latex/exptl/ to tex-archive/install/macros/latex/contrib/ * New contrib location on CTAN There's also a new location for contributed styles: tex-archive/macros/latex/contrib/biblatex-contrib/ The old exptl/biblatex-contrib/ directory is still available and will keep being available as a staging area for styles which are work in progress. If your style is considered stable, you may want to move it to contrib/biblatex-contrib/. If it's experimental, you may prefer exptl/biblatex-contrib/. * Biber update When updating Biblatex, make sure you also get the latest Biber from this location: http://sourceforge.net/projects/biblatex-biber/files/ biblatex-biber/current/ Ready-to-run binaries are here: http://sourceforge.net/projects/biblatex-biber/files/ biblatex-biber/current/binaries/ * Modified 'bibencoding' package option, new default I've renamed 'bibencoding=inputenc' to 'bibencoding=auto' to make it clear that this option is not specific to the inputenc package and also works with XeTeX/LuaTeX in native UTF-8 mode. bibencoding=inputenc is still supported as an alias. 'bibencoding=auto' is the new package default. This means that biblatex by default assumes that the workflow is transparent, i.e., that the .bib files use the same encoding as the .tex file. Note that it is the input encoding of the .tex (!) file which is detected automatically. If the .bib files use a different encoding, you always need to specify it explicitly. If you prefer the old default, you can easily restore it by adding the following like to your biblatex.cfg file: \ExecuteBibliographyOptions{bibencoding=ascii} The new default setting may trigger some warnings which have not been triggered before. Consider this case: \usepackage[latin1]{inputenc} \usepackage{biblatex} This will trigger a warning instructing you to switch to bibtex8 or Biber. That's because the defaults are 'backend=bibtex' and 'bibencoding=auto'. The latter implies that the .bib files are Latin1 encoded but traditional BibTeX can't handle that, hence the warning. If the .bib files do in fact use Latin1 encoding it's a good idea to heed the advice: \usepackage[latin1]{inputenc} \usepackage[backend=bibtex8/biber]{biblatex} If they're Ascii, set the encoding explicitly: \usepackage[latin1]{inputenc} \usepackage[bibencoding=ascii]{biblatex} On the other hand, you may delete all old 'bibencoding=inputenc' options as this is the default setting now. RELEASE NOTES FOR VERSION 0.9e * Biber update, options 'sortupper', 'sortlocale' Biber has been updated to version 0.5.7. There are ready-to-run binaries for the latest version. If you're using Biber, upgrade to 0.5.7 or later when upgrading to biblatex 0.9e. Biblatex now offers two package options which correspond to Biber's command line options --sortupper and --sortlocale, the point being that you can set them on a per-document basis. I've also added some explanations concerning encodings and locale settings. See the changelog for pointers. * Improved backrefs for @set entries, 'backrefsetstyle' option I've revised and improved the handling of back references related to entry sets. Biblatex is now capable of tracking the @set head entry and the set members separately, if so desired. The new package option 'backrefsetstyle' controls the tracking mode. By way of example, consider a set ("set1") with three members ("memA", "memB", "memC") and the following input: on page 1: \cite{set1} on page 2: \cite{memA} on page 3: \cite{memB} on page 4: \cite{memC} With backrefsetstyle=setonly, this will generate the following back references: set1: 1, 2, 3, 4 memA: - memB: - memC: - With backrefsetstyle=memonly: set1: - memA: 1, 2 memB: 1, 3 memC: 1, 4 With backrefsetstyle=setormem: set1: 1 memA: 2 memB: 3 memC: 4 With backrefsetstyle=setandmem: set1: 1, 2, 3, 4 memA: 2 memB: 3 memC: 4 With backrefsetstyle=memandset: set1: 1 memA: 1, 2 memB: 1, 3 memC: 1, 4 With backrefsetstyle=setplusmem: set1: 1, 2, 3, 4 memA: 1, 2 memB: 1, 3 memC: 1, 4 To take advantage of that in custom styles, only a minor update is required. Supporting the @set entry and the set members separately is pretty intuitive. Any \printlist command in the @set entry will see the 'pageref' list of the @set entry; the \printlist commands in the regular drivers (which handle the set members) will see the 'pageref' list of the respective member: \DeclareBibliographyDriver{set}{% \entryset{}{}% \newunit\newblock % <- NEWLY ADDED \printlist{pageref}% <- NEWLY ADDED \finentry} \DeclareBibliographyDriver{}{% ... \printlist{pageref}% ... } There are some bibmacros as well as a new \bibpagerefpunct separator to help with that, hence the actual code in the standard styles works like this: \DeclareBibliographyDriver{set}{% \entryset{}{}% \newunit\newblock % <- NEWLY ADDED \usebibmacro{setpageref}% <- NEWLY ADDED \finentry} \DeclareBibliographyDriver{}{% ... \setunit{\bibpagerefpunct}\newblock % <- MODIFIED \usebibmacro{pageref}% ... } That's all. This will ensure that all tracking modes are supported. RELEASE NOTES FOR VERSION 0.9d * Date formatting options I've removed all '=none' options as this feature seems to be causing some confusion. Setting '=none' was not sufficient to suppress a certain date in all cases because date specifications may also incorporate elements such as the 'issue' field, be tied to the 'url' in a way that leads to erroneous formatting if there is no date, etc. I'm afraid selectively omitting dates really needs to be handled on the style level. There's a new set of '=iso8601' options which print extended-format ISO-8601 dates. Not all of ISO-8601 is implemented, only the core elements of the extended format which are also used in .bib files, i.e., "yyyy-mm-dd" for individual dates and "yyyy-mm-dd/yyyy-mm-dd" for ranges. Full-scale ISO-8601 date/time specs like "2005-08-09T18:31:42P3Y6M4DT12H30M17S" wouldn't make much sense in a bibliography anyway. Note that these options are language agnostic. They will override any region-specific settings provided by .lbx files. That's the whole point of ISO-8601, after all. RELEASE NOTES FOR VERSION 0.9c * Improved reencoding support Biber 0.5.5 is capable of reencoding the data in bib files on the fly. This solution is more robust than biblatex's macro-level reencoding with inputenc. With 'backend=biber', biblatex will now use Biber instead of inputenc. In addition to that, the biblatex code which detects if the bib data needs to be reencoded to match the encoding of the tex file is smarter now and should work smoothly. In practice, this simply means that you may always use the 'bibencoding' option to specify the encoding of your bib files (there was some potential for spurious reencoding steps in previous versions), with any backend. It is in fact highly recommended to do so for two reasons: 1) the default value is 'ascii', and 2) biblatex will warn you if the bib encoding can't be handled by the backend you selected. You may put your platform default in biblatex.cfg; there is no need to do that in each and every preamble (you may still override all biblatex.cfg settings on a per-document basis in the preamble, if required). * UTF-8 encoded entry keys and bib filenames Biber 0.5.5 supports UTF-8 encoded entry keys. Biblatex will work with UTF-8 keys and filenames when running on an engine with native UTF-8 support (i.e., XeTeX or LuaTeX). Macro-level UTF-8 support with inputenc/inputenx will not do. * Improved arXiv support I've added an additional eprint-related field plus two aliases to better support arXiv references. The changelog includes pointers to the relevant sections of the manual. RELEASE NOTES FOR VERSION 0.9b * Extended Biber interface If you're using Biber as backend, make sure you update Biber as well (to version 0.5.4 or higher) because the Biblatex -> Biber interface has been extended. The most obvious effect of this improvement is that Biber is now capable of handling multiple refsections in a single pass. If you have any 'refsection' environments in a document, you only need to run Biber once. * New dependency: logreq package Starting with this release, biblatex will use the logreq package to write machine-readable messages to an auxiliary log file. When installing biblatex 0.9b, make sure to install the logreq package as well. It is available from CTAN: http://www.ctan.org/tex-archive/macros/latex/contrib/logreq/ A TDS archive is available as well: http://www.ctan.org/tex-archive/install/macros/latex/logreq.tds.zip * Modified \defbibfilter syntax I've modified \defbibfilter such that it uses \ifboolexpr (from etoolbox.sty) instead of \ifthenelse (from ifthen.sty) internally. \ifboolexpr uses a slightly different syntax. For example, this definition: \defbibfilter{example}{% \( \type{book} \or \type{inbook} \) \and \keyword{abc} \and \not \keyword{x y z} } becomes: \defbibfilter{example}{% ( type=book or type=inbook ) and keyword=abc and not keyword={x y z} } There is no need to update existing files since the old \ifthenelse syntax is still supported. \defbibfilter will implicitly 'translate' at definition time, if required. * Renamed option 'defernums' to 'defernumbers' The package option 'defernums' has been renamed to 'defernumbers'. * Prefixed numerical citations, improved 'numeric' styles I've added three options to \printbibliography which are related to numerical citation schemes. They are called 'prefixnumbers', 'resetnumbers', and 'omitnumbers'. Note that these options require that 'defernumbers' be set globally since they assign the numeric labels as the bibliography is generated (as opposed to at the beginning of the document body, as the data is read in). The new options enable the numeric styles to support prefixed numerical citations. The following may be accomplished by setting 'prefixnumbers' for each prefixed subbibliography: REFERENCES Printed References [A1] ... [A2] ... Online References [B1] ... [B2] ... It is also possible to mix one non-prefixed subbibliography with one or more prefixed ones (set 'prefixnumbers' for each prefixed subbib and 'resetnumbers' for the non-prefixed one) or even to mix numerical citations with author-year or author-title citations (set 'omitnumbers' for all non-numerical subbibs). See the files '16-numeric-prefixed-1', '17-numeric-prefixed-2', and '18-numeric-hybrid' in the 'examples' subdirectory for practical examples. Adding support for prefixed numerical citations to existing numeric styles is trivial. The prefixes set in the argument to \printbibliography are available in the 'prefixnumber' field. If no prefix has been set, the field is undefined. Hence, in the cbx file, simply replace: \printfield{labelnumber} with: \printfield{prefixnumber}% \printfield{labelnumber} In the bbx file, the prefix needs to be incorporated in the definition of the bibliography environment. Replace: \defbibenvironment{bibliography} {\list {\printfield[labelnumberwidth]{labelnumber}} {...} {\endlist} {\item} with: \defbibenvironment{bibliography} {\list {\printtext[labelnumberwidth]{% \printfield{prefixnumber}% \printfield{labelnumber}}} {...} {\endlist} {\item} The numeric styles which ship with biblatex support prefixed labels out of the box. * New author-title style There's a new style which rounds off the selection of author-title styles which ship with biblatex. It's called 'authortitle-ticomp' and, as you can tell by the name, it's a variant of the 'authortitle-tcomp' style with an 'ibidem' feature. * Improved verbose styles, added 'citepages' option By popular request, all verbose styles now offer a 'citepages' option which deals with the 'pages' field in citations, in particular in cases in which the postnote is numerical. Note that style specific options are only mentioned briefly in the manual. They are discussed in greater details in the example file for the style (in the 'examples' subdirectory). * Long + short bibliography strings available Previous biblatex releases used to pick the long or the short version of the strings in the lbx files at file load time, depending on the setting of the global 'abbreviate' option. Starting with this release, both versions are kept in memory. In addition to \bibstring and friends, which print the long or the short version of the string (depending on the 'abbreviate' option), there are now commands like \biblstring and \bibsstring, which force the long or the short version, respectively. Note that the auxiliary macro \lbx@fromlang, which is used in lbx files, has been split up into \lbx@lfromlang and \lbx@sfromlang. * Automatically omit redundant language specifications Some style guides require that authors indicate the language of all foreign-language items in the bibliography. Biblatex's 'language' field (which is in fact a list) helps to deal with this requirement. If you are writing in more than one language and reuse the same set of bib files in different contexts, it is convenient to include this information whenever you add a new entry to a bib file. However, this leads to redundant information. It is rather odd to indicate "English" in the reference to an English book cited in an English article. The 'clearlang' option and \DeclareRedundantLanguages avoid such redundant language specifications. \DeclareRedundantLanguages maps languages as indicated in the 'language' field to the language identifiers of the babel package. Given this information, biblatex can omit the language if it matches the language of the document. Technically, this means that the 'language' field will appear as undefined to styles, so it is safe to simply use '\printlist{language}' in styles and let biblatex sort out the rest. The 'clearlang' option controls this feature globally. \DeclareRedundantLanguages mappings are typically included in lbx files (but may also be given on a per-document basis in the preamble). All standard lbx files which ship with biblatex now include such mappings and 'clearlang' is enabled by default. RELEASE NOTES FOR VERSION 0.9a This release adds a few changes and improvements which were originally scheduled for biblatex 0.9 but somehow got lost in the release process or didn't make it in time. Pay attention to all changes tagged as "CAVEAT". * [CAVEAT] Prenote placement with \cite, \textcite [numeric/alphabetic] The placement of the prenote in all numeric and alphabetic styles has been modified. Old format: \cite[see][15]{key} -> see [1, p. 15] \parencite[see][15]{key} -> [see 1, p. 15] \textcite[see][15]{key} -> see Doe [1, p. 15] New format: \cite[see][15]{key} -> [see 1, p. 15] \parencite[see][15]{key} -> [see 1, p. 15] \textcite[see][15]{key} -> Doe [see 1, p. 15] As seen in the above examples, the new format places the prenote inside the brackets. If you want the prenote outside of the brackets, you can simply use: see \cite[15]{key} -> see [1, p. 15] see \textcite[15]{key} -> see Doe [1, p. 15] which is similar to the old format. * [CAVEAT] Prenote placement with \textcite [authoryear/authortitle] The placement of the prenote in all authoryear and authortitle styles has also been modified. Old format: \cite[see][15]{key} -> see Doe 2010, p. 15 \parencite[see][15]{key} -> (see Doe 2010, p. 15) \textcite[see][15]{key} -> see Doe (2010, p. 15) New format: \cite[see][15]{key} -> see Doe 2010, p. 15 \parencite[see][15]{key} -> (see Doe 2010, p. 15) \textcite[see][15]{key} -> Doe (see 2010, p. 15) The new format places the prenote inside the brackets. If you want the prenote outside of the brackets, you can simply use: see \textcite[15]{key} -> see Doe (2010, p. 15) which is similar to the old format. * [CAVEAT] Introducing \defbibenvironment I'm phasing out the thebibliography/theshorthands environments and the corresponding commands \thebibitem and \thelositem. Essentially, the old way of controlling the (high-level) layout of the bibliography and the list of shorthands is replaced by a new mechanism based on \defbibenvironment. It's not radically different. For example, where a style has code like this: \renewenvironment*{thebibliography} {\list{}{...}} {\endlist} \renewcommand*{\thebibitem}{\item} \renewenvironment*{theshorthands} {\list{}{...}} {\endlist} \renewcommand*{\thelositem}{\item} replace it with: \defbibenvironment{bibliography} {\list{}{...}} {\endlist} {\item} \defbibenvironment{shorthands} {\list{}{...}} {\endlist} {\item} The new system is similar to \defbibheading: you use \defbibenvironment to define the environment and the new 'env' option of \printbibliography and \printshorthands to select it. The point of the new system is that you can have different styles for different (partial) bibliographies in a document. It's also conceptually in line with \defbibheading now. I've added some compatibility code to biblatex. Older styles using thebibliography/thebibitem and theshorthands/thelositem will continue to work until you use \defbibenvironment for the first time to modify the default definition. From that point on, the old environment will be ignored. Updating old styles is of course highly recommended. The compatibility code may be removed from biblatex after 1.0. The standard styles have been updated to use the new syntax. They will ignore any changes based on the old definitions. * Added \printbibheading \printbibheading is the heading part of \printbibliography. This is useful for subdivided bibliographies. E.g., instead of \chapter{\bibname} \printbibliography[heading=subbibliography,type={...},...] \printbibliography[heading=subbibliography,type={...},...] ... you use: \printbibheading % = \printbibheading[heading=bibliography] \printbibliography[heading=subbibliography,type={...},...] \printbibliography[heading=subbibliography,type={...},...] ... The point is that the overall heading is in sync with the subheadings. * Smart parentheses and brackets This release adds a new 'parenthesis tracker', i.e., if parentheses and/or brackets are nested, biblatex alternates between parentheses and brackets, depending on the nesting level. E.g.: \mkbibparens{text \mkbibparens{text} text} \mkbibbrackets{text \mkbibbrackets{text} text} yields (text [text] text) [text (text) text] This also works with \bibopenparen + \bibcloseparen and \bibopenbracket + \bibclosebracket as well as the new citation commands \parentext and \brackettexts. * Open ended date ranges There's one thing I forgot to mention when introducing the new date fields in the previous release. It is possible to specify an open ended range by leaving the end date blank: 1988/1992 = 1988-1992 1988/ = 1988-today 1988 = 1988 Open ended ranges are represented by a defined but empty "endyear" component on the level of the style interface: date = {1988} -> day = undefined month = undefined year = "1988" endday = undefined endmonth = undefined endyear = undefined date = {1988/} -> day = undefined month = undefined year = "1988" endday = undefined endmonth = undefined endyear = EMPTY date = {1988/1992} -> day = undefined month = undefined year = "1988" endday = undefined endmonth = undefined endyear = "1992" All high-level date commands like \printdate detect and handle open ended ranges autoamtically. Use \iffieldequalstr{endyear}{} {true} {false} if you want to test for open ended ranges explicitly. * Extended language support: Finnish This release comes with a finnish.lbx file. The translations have been contributed by Hannu V\"ais\"anen. * Updated language support: Greek This release comes with an updated greek.lbx file contributed by biblatex user Prokopis. * Updated examples, some updates in the manual Some of the examples which ship with biblatex were not completely up to date in the 0.9 release. They have been updated now. I've also corrected/added a few minor points in the manual. RELEASE NOTES FOR VERSION 0.9 Several features on my 'to do' list have been deferred because they introduce backwards compatibility issues. I wanted to implement them all in one shot so that style authors only need to update their styles once. This release finally takes that step. In other words: THIS VERSION IS NOT FULLY BACKWARDS COMPATIBLE! Style authors will most likely need to update their styles to make them work with this release. You will find detailed hints about what needs to be updated in the release notes below. Changes which raise backwards compatibility issues are tagged as "CAVEAT". Users who rely on styles found in: macros/latex/exptl/biblatex-contrib/ on CTAN are advised to stick with biblatex 0.8 for the time being and defer the upgrade to 0.9 until the styles they use have been updated. If you have accidentally installed this release and find out that you need to downgrade, you can get the previous biblatex release from the project page on Sourceforge: http://sourceforge.net/projects/biblatex/files/ CTAN always carries the latest version. I have received many inquiries about why biblatex is not yet included in TeX Live and MikTeX and why I was maintaining that nasty do-not-distribute clause. There seems to be some confusion about what the term 'stable' means. The point typically brought up was that biblatex runs well and is thus 'stable'. Well, in that sense, biblatex has been pretty stable since version 0.1. However, it has not been stable in the sense of maintaining backwards compatibility since version 0.1. This release, however, is finally considered suitable for wider distribution. * Distributing biblatex This release should be a reasonable target for TeX distributions, even though biblatex is still tagged as 'beta' and located in the experimental branch on CTAN. I will make the move to the stable branch when it hits 1.0. Given the number of changes and new features in this release, it's quite possible that some bugs slipped in. If you start packaging biblatex now, be prepared for some maintenance releases (i.e., 0.9a, 0.9b, etc.) in the upcoming weeks. A few more notes to distributors: - See the README file for requirements and dependencies. - The *.csf files in doc/resources go into TEXMF/bibtex/csf/. The names will not conflict with the *.csf files shipping with biblatex8. Biblatex uses names like latin1.csf while biblatex8 uses 88591lat.csf. - It would be nice to have two copies of biblatex-examples.bib installed, one in TEXMF/doc for users looking for documentation in the usual place and a second copy in TEXMF/bibtex/bib/. Since users are encouraged to use this database in minimal examples, it's handy to have it readily available. - Biber is the next-generation backend of biblatex. It would be very welcome to have a Biber package as well. See the project page on http://biblatex-biber.sourceforge.net/ for details. Note that biblatex currently supports three backends: BibTeX (i.e., traditional 7-bit BibTeX), bibtex8, and Biber. BibTeX/bibtex8 support will be discontinued in biblatex 2.x. - A package for the contributed styles found in macros/latex/exptl/biblatex-contrib/ is also welcome because some of these styles are already very popular. However, wait for the styles in to be updated to biblatex 0.9 before packaging them. * Contributing to biblatex Localizing biblatex heavily depends on user contributions. I've added a new tracker named 'Contrib' to the project page which will hopefully help to organize this process: http://sourceforge.net/tracker2/?group_id=244752 There is one item for each language supported by biblatex. The status of the item reflects the localization status of the corresponding language. If the status is "open", the localization module is incomplete or in need of peer review by a native speaker. If the status is "closed", the module is complete and there are no known issues (you can still post comments to closed items and upload files if you want to suggest improvements). If you have updates for a language module, upload the updated *.lbx file in the appropriate thread. If you want to contribute support for a new language, simply open a new tracker item. * Updating existing biblatex styles As usual, the full list of changes is found in the biblatex manual. The release notes you are just reading mention all changes which are not backwards compatible. Pay attention to all "CAVEAT" points. When you update your style, it may be a good idea to add some code which checks that the style is running under biblatex 0.9 or later. You can use the standard LaTeX \@ifpackagelater test for this purpose. Here's some sample code (where 'YYYY/MM/DD' needs to be replaced with the real release date of biblatex 0.9 and 'MYSTYLE' with the name of your style): \@ifpackagelater{biblatex}{YYYY/MM/DD} {} {\PackageError{biblatex} {Outdated 'biblatex' package} {The 'MYSTYLE' style requires biblatex v0.9 or later.\MessageBreak You are using: '\csuse{ver@biblatex.sty}'.\MessageBreak This is a fatal error. I'm aborting now.}% \endinput} Since \@ifpackagelater is in fact a 'greater than or equal' test, you can simply replace YYYY/MM/DD with the date found in the \ProvidesPackage declaration at the top of biblatex.sty. * New Biber interface Biber is the next-generation database backend of biblatex. It is available from: http://biblatex-biber.sourceforge.net/ If you decide to use Biber, set 'backend=biber' (preferably in biblatex.cfg) and upgrade to Biber 0.5 or higher. Biblatex 0.9 uses a new interface to talk to Biber hence you must specify backend=biber and use the latest Biber version. Note that biblatex and Biber use separate bug trackers. If you're using Biber and find a bug, try your example with a different backend. If the problem persists, report it as a biblatex bug. If not, report it as a Biber bug. * [CAVEAT] Revised and expanded date fields All date fields have been expanded such that they support ranges in 'start/end' format. Of course it is still possible to specify a single date and you may also truncate dates at the end. In sum, the following examples are all valid date specifications: 1850 1967-02 2009-01-31 1988/1992 <- this is a range (from 1988 until 1992) 2002-01/2002-02 1995-01-31/1995-02-05 This format is supported by the following fields: 'date', 'origdate', 'eventdate', 'urldate' (for the sake of consistency in the case of 'urldate'). I have also removed or modified some of the fields for date components (e.g., 'day', 'urlday', etc.): * [CAVEAT] The field 'day' has been removed. Use the 'date' field instead to specify full dates. * [CAVEAT] The field 'year' is no longer a range field but a literal field. Year ranges should be given in the 'date' field instead. * [CAVEAT] I've removed the field 'origyear' and added 'origdate' as a replacement. 'origdate' is similar to 'date', i.e., it takes a date specification in 'yyyy-mm-dd' format and supports date ranges in 'start/end' format. * [CAVEAT] The fields 'urlday', 'urlmonth', 'urlyear' have been removed. Use 'urldate' instead. * I've added an 'eventdate' field. This is also a date range field. USERS: You will probably need to update your bib files. The changes which are most likely to cause incompatibilities are the removal of the 'day' field and the modification of 'year'. Use 'date' instead were required. The removal/renaming of 'origyear' may also require a few changes. I doubt than many users are specifying access dates using urlday+urlmonth+urlyear. Since 'urldate' has been extended but not modified in an incompatible way, this change should be fairly transparent. AUTHORS: The way the date components are made available to styles has not changed. For example, the components of the publication date are available as day/month/year no matter whether they were given in the 'date' field or in 'year' and 'month'. In sum, 'date'-like fields are split up as follows: *.bib file style interface ------------------ ------------------ date day month year endday endmonth endyear origdate origday origmonth origyear origendday origendmonth origendyear eventdate eventday eventmonth eventyear eventendday eventendmonth eventendyear urldate urlday urlmonth urlyear urlendday urlendmonth urlendyear Fields related to date components which are not available are undefined. E.g.: date = {1988} -> day = undefined month = undefined year = "1988" endday = undefined endmonth = undefined endyear = undefined urldate = {2009-01-31} -> urlday = "31" urlmonth = "01" urlyear = "2009" urlendday = undefined urlendmonth = undefined urlendyear = undefined origdate = {2002-01/2002-02} -> origday = undefined origmonth = "01" origyear = "2002" origendday = undefined origendmonth = "02" origendyear = "2002" eventdate = {1995-01-31/1995-02-05} -> eventday = "31" eventmonth = "01" eventyear = "1995" eventendday = "05" eventendmonth = "02" eventendyear = "1995" If there is no 'date' field, biblatex will consider the legacy fields 'month' and 'year'. E.g.: year = {1988} -> day = undefined month = undefined year = "1988" endday = undefined endmonth = undefined endyear = undefined year = {1993} -> day = undefined month = {5} month = "05" year = "1993" endday = undefined endmonth = undefined endyear = undefined When printing a single date component in a style, use the field names listed in the 'style interface' column above (e.g., "\printfield{origmonth}"). There is no 'date' field on the style level. However, there is normally no need to fiddle with the date component fields directly. See the next point for details. * [CAVEAT] Modified date interface The high-level date interface has been revised. The commands \bibdate and \biburldate have been renamed and improved. Here's a list of the new high-level commands: \printdate \printurldate \printorigdate \printeventdate These commands print the respective date, handle ranges, and localize the output format. For example, if the publication date is a plain year, then \printdate will only print the year. If it's a full date, it will print all date components which are available. If it's a range, it will format the range. The high-level commands need not be wrapped in a \printtext command. USERS: The change is relevant for style authors only. The standard styles have been updated. AUTHORS: Where your style has code like: \bibdate or \printtext{\bibdate} and \biburldate or \printtext{\biburldate} use \printdate and \printurldate instead. Use \printorigdate and \printeventdate to handle the new 'origdate' and 'eventdate' fields. * [CAVEAT] Modified 'labelyear' Adding support for date ranges has prompted a refactoring of the 'labelyear' mechanism. Essentially, I've renamed the existing 'labelyear' field to 'extrayear' and re-added a new 'labelyear' field with a different role. The 'maxlabelyear' counter has been renamed to 'maxextrayear'. The new mechanism is consistent with labelalpha/extraalpha, e.g., 'labelyear' holds the bare year (or year range) and 'extrayear' indicates the extra letter used for disambiguation (as an integer). The new 'labelyear' field holds the year components of the 'date' field, readily formatted using \bibdatedash as a range separator. Identical year components in a date range are detected automatically. If there is no 'date' field, the 'year' field will be considered instead. Here are some examples: date = {2003} -> labelyear = "2003" date = {1995-01-31/1995-02-05} -> labelyear = "1995" date = {1995/1998} -> labelyear = "1995\bibdatedash 1998" date = {1998-12-27/1999-01-03} -> labelyear = "1998\bibdatedash 1999" year = {2005} -> labelyear = "2005" If there is neither a 'date' nor a 'year' field then 'labelyear' will be undefined. USERS: The change is relevant for style authors only. The standard styles have been updated. AUTHORS: Where your style has code like: \printfield{year}% \printfield{labelyear}% use this: \printfield{labelyear}% \printfield{extrayear}% instead. If you want to concatenate 'extrayear' and the (full) publication date in the bibliography, use: \printdateextra \printdateextra is similar to \printdate but incorporates the 'extrayear' in the date specification. * [CAVEAT] Revised date localization The way date specifications are localized in lbx files has been refactored. Only \DeclareBibliographyExtras declarations in *.lbx files are affected by this change. Basically, the commands: \bibdatelong \bibdateshort \biburldatelong \biburldateshort have been removed and are replaced by the generic commands: \mkbibdatelong \mkbibdateshort The new commands take three arguments (three field names) and arrange them as required by the respective language/locale. The new system is more easily extensible. USERS: The change is relevant for style authors only. The standard styles have been updated. AUTHORS: Even though this point is tagged as 'caveat', it's rather unlikely that it will cause any trouble. The change is only relevant for style authors who a) ship custom lbx files (or users who have adapted some of the stock lbx files) and b) have modified the 'extras' (as opposed to inheriting them form the stock modules). * Added/extended package options for date formats There are now four date formats to choose from: short, long, terse, comp. terse and comp are like short and long but render date ranges in a more compact format. * Support for multiple editorial roles This release adds three additional fields (data type: name list) for secondary editors: 'editora', 'editorb', 'editorc'. There are also matching 'editor*type' fields. Biblatex now supports up to four distinct editoral roles, e.g.: editor = {Eddy Editor} editora = {Freddy Founder} editoratype = {founder} editorb = {Cory Continuator} editorbtype = {continuator} editorc = {Rudy Redactor} editorctype = {redactor} USERS: The new fields are fully supported by the standard styles. AUTHORS: The catch-all 'byeditor+others' macro in biblatex.def has been updated to incorporate the new fields. The 'byeditor' macro will consider them as well. There's also a dedicated 'byeditorx' macro which processes the 'editor[a-c]' lists. In other words: if your style relies of the ready-made macros in biblatex.def, it will consider the new fields automatically. If not, have a look at biblatex.def to get an idea of how to incorporate them in your style. * [CAVEAT] 'redactor' now an editorial role The field 'redactor' has been removed because the redactor is now an editorial role, i.e.: editor = {Eddy Editor} redactor = {Rudy Redactor} becomes: editor = {Eddy Editor} editora = {Rudy Redactor} editoratype = {redactor} USERS: You may need to update some of your bib files. AUTHORS: The 'byredactor' macro has been removed from biblatex.def because this role is now handled by the editor-related macros mentioned above. * [CAVEAT] Revised lbx files, simplyfied role concatenation I've simplyfied the role concatenation somewhat. Concatenation is now only supported if the primary role is 'editor' (i.e., if the 'editortype' field is undefined or holds the string 'editor'). It turned out to be too painful to support concatenation for all kinds of editorial roles (compiler, redactor, founder, etc.) in all languages. This will also make the lbx files much more readable and the whole apparatus easier to understand. It's all a bit difficult to describe but fairly easy to grasp if you take a look at the strings in the lbx files. Essentially, biblatex 0.8 would define fragmentary type* and bytype* snippets: typeeditor = {{editor}{...}}, typecompiler = {{compiler}{...}}, bytypeeditor = {{edited}{...}}, bytypecompiler = {{compiled}{...}}, The full strings would then be assembled by auxiliary macros which insert the type* and bytype* snippets into the string definitions: editor = {{\lbx@typeeditor}{...}}, editortr = {{\lbx@typeeditor\ and translator}{...}}, byeditor = {{\lbx@bytypeeditor\ by}{...}}, byeditortr = {{\lbx@bytypeeditor\ and translated \lbx@fromlang\ by}{...}}, These are the simplified strings in biblatex >=0.9: editor = {{editor}{...}}, compiler = {{compiler}{...}}, editortr = {{editor and translator}{...}}, byeditor = {{edited by}{...}}, bycompiler = {{compiled by}{...}}, byeditortr = {{edited and translated \lbx@fromlang\ by}{...}}, The old scheme was admittedly more elegant but it simply didn't work quite right in all languages. * Notes on the basic structure of role processing in biblatex.def The following hints may help you to find your way around the ready-made macros and definitions in biblatex.def. Essentially, a role like 'editor' may be expressed as a function or as an action, e.g.: Bernard Bookmaker, editor, Title, ... [function] ... Title, edited by Bernard Bookmaker [action] Roles which are related to supplementary material in a book, such as a commentary or annotations, may also be expressed as an object: ... Title, annotated by Edward Expert [action] ... Title, with annotations by Edward Expert [object] In biblatex.def, the names of the ready-made macros correspond to name formats and localization keys: Macros like editor/translator print a role as a function. They use - name formats like editor/translator and - strings like editor/translator. Macros like byeditor/bytranslator print a role as an action. They use - name formats like byeditor/bytranslator and - strings like byeditor/bytranslator. Macros like withcommentator/withannotator print a role as an object. They use - name formats like withcommentator/withannotator and - strings like withcommentator/withannotator. For example, the bibmacro 'editor' essentially boils down to the following code: \printnames{editor} = \printnames[editor]{editor} \bibstring{editor} The 'byeditor' macro boils down to: \bibstring{byeditor} \printnames[byeditor]{editor} and the 'withannotator' macro to: \bibstring{withannotator} \printnames[withannotator]{annotator} The real code is more complex because it needs to take punctuation and additional parameters into account (such as the 'editortype' field, role concatenation, etc.) but this is the basic idea. * [CAVEAT] Revised indexing controls The way the indexing facilities are configured has been revised and modified. In previous releases, the 'indexing' option would enable and disable commands like \indexfield on a low level. Starting with this release, the indexing commands are always operational. The 'indexing' option controls two new tests called \ifciteindex and \ifbibindex which should be used as explicit tests. In the standard styles, indexing is handled by two bibmacros called 'citeindex' and 'bibindex'. The old definition was: \newbibmacro*{citeindex}{% \indexnames{labelname}% \indexfield{indextitle}} \newbibmacro*{bibindex}{% \indexnames{labelname}% \indexfield{indextitle}} The new one is: \newbibmacro*{bibindex}{% \ifbibindex {\indexnames{labelname}% \indexfield{indextitle}} {}} \newbibmacro*{citeindex}{% \ifciteindex {\indexnames{labelname}% \indexfield{indextitle}} {}} The point of this change is to make commands like \indexfield useable in a more flexible way, regardless of the setting of the 'indexing' option. Since they are always operational now, you can use them for tasks which require access to the bibliographic data but do not print anything, such as setting page headers or writing data to some external file. It is not advisable to use commands like \printfield for this purpose because they interface with the punctuation tracker. Use \printfield if you really want to print a field and \indexfield for other tasks, indexing obviously being the most common application. USERS: From a user's point of view, the new mechanism works like the old one. AUTHORS: Standard citation commands like \cite should always use the above bibmacros (citeindex/bibindex) anyway so no change is required. You may need to incorporate the \ifciteindex and \ifbibindex tests into text citation commands (i.e., commands like \citeauthor and \citetitle) if you have redefined the standard ones or provide additional ones. All predefined commands in biblatex.def have been updated. * Fallback drivers Biblatex now supports the fallback entry type "*". If you use the asterisk as the type argument of \DeclareBibliographyDriver or \DeclareBibliographyAlias, the driver or alias will be used as a fallback if no specific driver for a certain type has been defined. E.g.: \DeclareBibliographyDriver{*}{} \DeclareBibliographyAlias{*}{misc} * Manual language selection By default, biblatex detects the babel package if it is loaded and can adjust to the selected babel language automatically. Using the new 'language' package option, you can now force biblatex to load support for a certain language. This will implicitly disable babel support and on-the-fly language switching. The 'babel' package option is ignored in this case. This is mainly useful if you can't use babel for some reason. Using the automatic babel interface is usually preferable. * Improved \defbibheading, introducing 'title' option I've extended \defbibheading and added a 'title' option to \printbibliography and \printshorthands. These extensions are mainly useful for subdivided bibliographies. This is best explained by example. With previous biblatex releases, subdivided bibliographies required one heading definition for each subsection since the heading definition included both the format and the text of the heading: \defbibheading{books}{\section*{Books}} \defbibheading{articles}{\section*{Articles}} \defbibheading{online}{\section*{Online Resources}} \chapter{\bibname} \printbibliography[type=book,heading=books] \printbibliography[type=article,heading=articles] \printbibliography[type=online,heading=online] When using the extended syntax of \defbibheading, the heading definition only controls the format but the title may be specified by using the 'title' option of \printbibliography and \printshorthands. The value of this option will be passed to the heading definition as paramater #1. The new optional argument of \defbibheading defines the default text which is passed as #1 if there is no 'title' option. \defbibheading{subdiv}[\bibname]{\section*{#1}} \chapter{\bibname} \printbibliography[type=book,heading=subdiv,title={Books}] \printbibliography[type=article,heading=subdiv,title={Articles}] \printbibliography[type=online,heading=subdiv,title={Online Resources}] Since biblatex provides a predefined heading called 'subbibliography' you don't even need \defbibheading in this case. You can simply use 'heading=subbibliography', specify 'title={...}', and rely on the predefined heading definitions provided by biblatex which support the standard LaTeX classes, the KOMA-Script classes, and the memoir class automatically. The extensions are backwards-compatible. It is still possible to use the parameterless form of \defbibheading. Such headings will work as expected but the 'title' option of \printbibliography and \printshorthands will obviously be ignored in this case. * More options for \printshorthands, subdivided LOS I've added more options to \printshorthands. It now supports the same options as \printbibliography. This is useful for a subdivided list of shorthands. * Improved author-title and author-year citation styles I've improved the compact citation styles authortitle-comp, authortitle-icomp, authortitle-tcomp, and authoryear-comp. The compact format is now supported in multicite commands as well. * New verbose-trad3 style This style is similar in concept to verbose-trad2 with a slightly different treatment of ibidem and op. cit. * Eprint support for Google Books/JSTOR/PubMed I've added eprint handlers for Google Books, JSTOR, and PubMed. This means that, instead of url = {http://books.google.com/books?id=XXu4AkRVBBoC}, you may also use: eprint = {XXu4AkRVBBoC}, eprinttype = {googlebooks}, PubMed support is similar. Instead of specifying the full URL (where is the unique and stable PubMed ID): url = {http://www.ncbi.nlm.nih.gov/pubmed/}, you may also say: eprint = {}, eprinttype = {pubmed}, By default, this will be printed as "PMID: " in the bibliography. If hyperref support is enabled, the will be a clickable link to PubMed. JSTOR support works exactly like PubMed. When using JSTOR's export feature to export citations in BibTeX format, JSTOR uses the 'url' field by default (where is a unique and stable identifier): url = {http://www.jstor.org/stable/} While this will work as expected, full URLs tend to clutter the bibliography. You may also use: eprint = {}, eprinttype = {jstor}, to get the more readable "JSTOR: " format which also supports hyperlinks (the becomes a clickable link). * More styles for compressed back references See 'backrefstyle' in the changelog. * Improved endnotes, added \pagenote support The \pagenote command, which is provided by the pagenote package and the memoir class, is now supported by \mkbibendnote. \mkbibendnote prioritizes as follows: 1) check for \endnote and use it if available 2) check for \pagenote and use it if available 3) issue a warning and fall back to \footnote There is also a new 'notetype' option which you may use to convert footnotes to endnotes and vice versa (provided that they are generated with \mkbibfootnote and \mkbibendnote, respectively; the standard \footnote and \endnote commands will not be modified). * Compatibility with UCS package Previous releases of biblatex were comptabile with inputenc's standard UTF-8 module but wouldn't work with the ucs package. This release also supports ucs. XeLaTeX's native UTF-8 support should also work fine. If you're using UTF-8 encoding you should be using Biber instead of BibTeX as a backend. * Dutch support This release comes with a dutch.lbx file. The translations have been contributed by Alexander van Loon. * Greek support As of this release, biblatex speaks Greek, too. The translations have been contributed by Apostolos Syropoulos. Note that the greek.lbx file requires UTF-8 support. Biblatex generally works with 1) LaTeX and inputenc: \usepackage[utf8]{inputenc} 2) LaTeX and inputenc+ucs: \usepackage{ucs} \usepackage[utf8x]{inputenc} 3) XeLaTeX Since inputenc's standard utf8 module has no glyph mappings for Greek, this leaves Greek users with a choice of 2) or 3). If you choose 2), make sure to preload the Greek Unicode range: \usepackage{ucs} \usepackage[utf8x]{inputenc} \PreloadUnicodePage{3} You may also use \PrerenderUnicode if you prefer that. See the section about "Known problems" in the UCS (!) manual for explanation. You may also need to load additional packages which set up Greek fonts. As a rule of thumb, any setup which works with regular Greek documents should also work with biblatex. However, there is one fundamental limitation. As of this writing, biblatex has no support for mixing scripts. Bibliographies in Greek should work fine, provided that you use Biber as a backend, but English and other titles in the bibliography may be rendered in Greek letters. The problem with using LaTeX and macro-level UTF-8 support via inputenc/ucs is that processing still happens in an 8-bit environment. The inputenc/ucs packages can decode all of UTF-8, but in order to typeset Unicode all input needs to be mapped to segments of 256 glyphs each because LaTeX only supports 8-bit output encodings. If you need multi-script bibliographies, XeLaTeX is the only sensible choice since XeTeX uses Unicode all the way from input to output. RELEASE NOTES FOR VERSION 0.8i This is a bug fix release. There are no new features and the manual has not been updated. RELEASE NOTES FOR VERSION 0.8h This is a bug fix release. There are no new features and the manual has not been updated. RELEASE NOTES FOR VERSION 0.8g This is a bug fix release. There are no new features and the manual has not been updated. RELEASE NOTES FOR VERSION 0.8f This is a bug fix release. There are no new features and the manual has not been updated. RELEASE NOTES FOR VERSION 0.8e * Improved concatenation of roles The standard styles (and the ready-made macros in biblatex.def) have been supporting the concatenation of (editorial and other) roles for some time. For example, if the editor and the translator of a book are the same person, the roles are concatenated and the name is given only once: Author, Title, ed. and trans. by Editor, ... However, if there is no author and the editor moves to the first position, the name was, until now, printed twice: Editor, ed., Title, trans. by Editor, ... The improved bibliography styles now support concatenation in this case as well: Editor, ed. and trans., Title, ... Since the macros which handle the concatenation are defined in biblatex.def, adding this feature to existing styles is simple. Where your style has code like: \usebibmacro{editor} \usebibmacro{author/editor} simply replace that with: \usebibmacro{editor+others} \usebibmacro{author/editor+others} The improvements also cover additional roles of the translator. To take advantage of that, replace code like: \usebibmacro{translator} \usebibmacro{author/translator} \usebibmacro{author/editor/translator} with: \usebibmacro{translator+others} \usebibmacro{author/translator+others} \usebibmacro{author/editor+others/translator+others} On a related note, it is safe to use code like this: \usebibmacro{editor+others}% \newunit \printfield{title}% \newunit \usebibmacro{byeditor+others}% because macros like 'editor+others' macro will use \clearname to clear all name lists already processed. For example, if the 'editor+others' macro prints 'ed. and trans.', it locally clears the 'editor' and 'translator' lists afterwards. The 'byeditor+others' macro will not print them a second time. It simply takes care of any names/roles not covered yet (commentator, annotator, etc.), if there are any left. * Added some new localization keys, removed some existing ones The above concatenation requires a whole set of new localization keys (see the manual for details). These keys are initialized by default. English and German translations are already available, the other localization modules need an update. The new strings are also useful for styles which use the 'first position' format in all cases, i.e., styles which print: Editor, ed. and trans., Title, ... Author, Title, in: Editor, ed. and trans., Book, ... instead of: Editor, ed. and trans., Title, ... Author, Title, in: Book, ed. and trans. by Editor, ... Since the number of localization keys keeps increasing, I've removed some of the rarely used 'country...', 'patent...', and 'patreq...' keys. Only about half a dozen keys in each of these groups is left, mainly to illustrate the underlying scheme. * New auxiliary macros for ordinals In the past, some localization modules have been redefining the field formats 'edition' and 'series' because they require ordinals and need to be adapted to use either \mkbibmascord or \mkbibfemord if ordinals are gender specific in the respective language. However, having lbx files redefine field formats is rather intrusive. Starting with this release, there's a new, non-intrusive solution. Biblatex provides two new macros, \mkbibordedition and \mkbibordseries, which should be used in the respective field formats. Where required (typically in Romanic languages), these macros are redefined by localization modules such that they point to \mkbibmascord or \mkbibfemord. * Extended language support: Brazilian Portuguese, Swedish revised This release adds support for Brazilian Portuguese and preliminary support for Portuguese/Portugal. The translations have been contributed by Augusto Ritter Stoffel. The Portuguese support in portuguese.lbx is mostly inherited from brazilian.lbx. This file needs review by a native speaker from Portugal. I've also added some revised Swedish translations which Per Starb\"ack sent in some time ago to the Swedish module. * German localization now using "Hrsg." By popular request, the German module now uses the abbreviations "Hrsg./hrsg. von" instead of "Hg./hg. von". Both forms are valid, but most users seem to prefer the more traditional "Hrsg". RELEASE NOTES FOR VERSION 0.8d * Biber beta release Biber is a BibTeX replacement written in Perl. It features Unicode support and has been designed with the requirements of biblatex in mind. See: http://biblatex-biber.sourceforge.net/ for details. Beta testers are invited to try it out and report any bugs on Biber's SourceForge project page. * Package option 'bibtex8' superseded by 'backend' The package option 'bibtex8' is superseded by a new option called 'backend'. The old option is not mentioned in the manual any more, but it is still supported for the sake of backwards compatibility. In new documents, however, replace it as follows: bibtex8=false -> backend=bibtex (default setting, omissible) bibtex8=true -> backend=bibtex8 RELEASE NOTES FOR VERSION 0.8c * Added 'idem' tracker I've added an 'idem' tracker which is similar in concept to the 'ibidem' tracker except that it checks for recurrent author/ editor names. See the 'idemtracker' package option and the \ifciteidem test in the manual. RELEASE NOTES FOR VERSION 0.8b * Added 'usetranslator' option The 'usetranslator' option is similar in concept to 'useauthor' and 'useeditor' hence usage should be fairly obvious. Style authors should note that styles derived from the standard ones will support this option if you replace \usebibmacro{author} \usebibmacro{author/editor} with \usebibmacro{author/translator} \usebibmacro{author/editor/translator} in all relevant drivers. RELEASE NOTES FOR VERSION 0.8a * SourceForge bug/feature trackers The user base of biblatex has been growing steadily, reaching a point where managing bug reports and feature requests by a combination of private email messages and Usenet postings has become impractical. I've therefore set up a project page on SourceForge: http://sourceforge.net/projects/biblatex/ There's no code on that site and most tools offered by SourceForge (like cvs/subversion, web-based forums, etc.) are currently disabled. The interesting thing are the trackers: http://sourceforge.net/tracker2/?group_id=244752 I've set up two trackers, 'Bugs' for bug reports and 'Features' for feature requests. Please use these trackers to report bugs and submit feature requests. I've also added all open bug reports and feature requests sitting in my email inbox but I may have missed some messages posted in public forums. If you've reported anything which doesn't show up on the project page, you can now add it yourself by selecting the appropriate tracker and clicking on "Add new artifact". * Custom localization modules This release adds support for custom localization modules. The point is that styles may ship modified lbx files. See \DeclareLanguageMapping and the changelog for further hints. * Configurable punctuation tracker The behavior of punctuation commands like \addcomma is now configurable. See \DeclarePunctuationPairs in the manual. * Improved 'American-style' punctuation I've improved the 'American-style' punctuation feature. american.lbx now uses \DeclarePunctuationPairs to adapt the punctuation tracker and \mkbibquote supports nested quotes even if American punctuation is enabled. * Sentence case vs. title case By popular request, I've added a macro which converts a string to sentence case. See \MakeSentenceCase, \MakeSentenceCase*, and \DeclareCaseLangs in the manual. \MakeSentenceCase supports the BibTeX convention that anything wrapped in braces is not altered when changing the case. Style authors who make use of the bibmacros in biblatex.def should note the following. Saying: \DeclareFieldFormat{title}{\MakeSentenceCase{#1}} will not work as expected. That's because biblatex uses macros like this one by default: \newbibmacro*{title}{% \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}} {} {\printtext[title]{% \printfield[noformat]{title}% \setunit{\subtitlepunct}% \printfield[noformat]{subtitle}}% \newunit}% \printfield{titleaddon}} The 'title' format is applied by a \printtext command which encloses both the title and the subtitle. \MakeSentenceCase would therefore see \printfield commands rather than the field contents. If you want to convert all titles to sentence case, \MakeSentenceCase must be applied on the inner level, by the \printfield commands. To facilitate that, I've modified this and similar bibmacros slightly: \newbibmacro*{title}{% \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}} {} {\printtext[title]{% \printfield[titlecase]{title}% \setunit{\subtitlepunct}% \printfield[titlecase]{subtitle}}% \newunit}% \printfield{titleaddon}} Instead of 'noformat', the nested \printfield commands now use 'titlecase' on the inner level. These formats are defined like this: \DeclareFieldFormat{titlecase}{#1} \DeclareFieldFormat{noformat}{#1} In other words, the default behavior remains unchanged but converting all titles to sentence case is as easy as saying: \DeclareFieldFormat{titlecase}{\MakeSentenceCase{#1}} You can apply additional formats on a higher level as usual: \DeclareFieldFormat{title}{\mkbibemph{#1}} \DeclareFieldFormat{title}{\mkbibquote{#1}} Just make sure that \MakeSentenceCase always hooks in on the innermost level such that it sees the raw field contents rather then data commands or other formatting commands. RELEASE NOTES FOR VERSION 0.8 As usual, the full changelog is included in biblatex.pdf. What follows are comments concerning changes 'under the hood' which are not mentioned in the changelog, things which may break backwards compatibility, improvements which may not be immediately obvious from looking at the changelog, and new major features which pertain to a set of entries in the changelog rather than a single one. The changelog and the release notes include changes made in the 0.7a-g maintenance releases. If you have been tracking the development closely, some things may sound familiar. Note that there have been changes in the LaTeX<->BibTeX data interface. You may want to delete all the old *.bbl and -blx.bib files before you start using the new version. In fact biblatex should be able to handle the update on its own but this will require an additional LaTeX+BibTeX cycle. In other words, you need to go through one LaTeX/BibTeX/LaTeX cycle to update all auxiliary files. You can ignore any warnings printed in this process. After that, the output should stabilize as usual. * Hints for style developers I'm delighted to see that the first custom biblatex styles start showing up on CTAN. One general note to style authors: unless your style is only a minor modification of one of the standard styles which ship with biblatex, it's a good idea to make sure it's self-contained, i.e., that it doesn't employ \RequireCitationStyle and/or \RequireBibliographyStyle to load code from the default styles (but feel free to incorporate code by copying it to your style). While the core of biblatex is stable by now, there's still potential for modifications in the standard styles (see below for examples). Having said that, loading standard.bbx should be a safe thing to do and you can also rely on code in biblatex.def because this file is part of the core of biblatex. * New citation and bibliography styles I've added some new styles: 'authoryear-ibid' (an author-year style with an 'ibidem' feature), 'draft' (which is a, well, draft style), and 'reading' (a style for annotated bibliographies and personal reading lists with abstracts, annotations, etc.). * Overhaul of all citation and bibliography styles I've overhauled all styles such that they use LaTeX (=etoolbox) rather than plain TeX syntax for the boolean switches. E.g., instead of: \newif\ifcbx@bool \cbx@booltrue \ifcbx@bool ...\else ...\fi they now use: \newbool{cbx:bool} \booltrue{cbx:bool} \ifbool{cbx:bool}{...}{...} This LaTeX frontend is provided by the etoolbox package. * Improved authoryear styles The authoryear styles have been improved such that they will consider the '(short)title' field if the author/editor is missing (or useauthor/useeditor=false is set). Note that these styles also consider the 'label' field, if available. In sum, the fallback chain in citations used to be: author -> editor -> label -> [issue warning] and the new chain works as follows: author -> editor -> label -> shorttitle -> title The 'shorthand' field, if defined, always takes precedence over any other data. * Improved verbose-note styles The styles verbose-note and verbose-inote can now add a page number to the reference pointing to the initial, full citation. There is a style option named 'pageref' which enables this feature. The page reference is only printed if the initial citation is located on a different page or page spread (depending on the setting of the 'pagetracker' option). * Improved numeric styles The numeric styles now support citations referring to set members. See the note about reference sets below, the manual, and the examples for details. * Introducing reference sets This release introduces the concept of a reference or entry set. A reference set is a group of entries which are cited as a single reference and listed as a single item in the bibliography. I'm told that this is a matter of particular interest for users in physics, chemistry, and possibly some other fields. See the 'set' type, the 'entryset' field, and the special field 'entrysetcount' in the manual. Also see \entryset and the pointers in the changelog. If you are familiar with this concept, you may have used the mcite or the mciteplus package before. The mcite and mciteplus manuals call this type of reference a "collapsed citation". They also talk about "grouping citations". The biblatex manual calls it "reference set" and "entry set". It's the same thing but note that the approach is different. With mcite(plus), sets are defined as they are cited for the first time. Essentially, a citation like \cite{key1,*key2,*key3} defines a set consisting of three entries (key1, key2, key3). The first entry key serves as identifier of the entire set, which may subsequently be cited as \cite{key1}. With biblatex, you declare sets in the bib file using the @set type, the 'entryset' field, and 'entryset' reverse pointers in the child entries: @Set{set1, entryset = {key1,key2,key3}, crossref = {key1}, } @Article{key1, entryset = {set1}, ... } @InCollection{key2, entryset = {set1}, ... } @InProceedings{key3, entryset = {set1}, ... } See the pointers in the changelog for further explanation. * Support for electronic publishing information (eprint) See the 'eprint' and 'eprinttype' fields and related pointers in the manual. Support for electronic publishing information has been added to all standard bibliography styles. This release comes with dedicated support for arXiv references which is usable out of the box and also serves as a model for adding support for other resources and online archives. * Modified 'labelyear' field The 'labelyear' field is no longer a string but an integer. The conversion of the integer to a string now takes places on the LaTeX side of the workflow, i.e., you'll usually have a formatting directive like this: \DeclareFieldFormat{labelyear}{\mknumalph{#1}} The \mknumalph command takes an integer in the range 1-702 as its argument and converts it to a string as used in author-year citations like "Jones 1995a". The format is: \mknumalph{1} -> a \mknumalph{26} -> z \mknumalph{27} -> aa \mknumalph{702} -> zz There is also a 'maxlabelyear' counter which holds the highest number found in any 'labelyear' field. This may be useful if you want to print the 'labelyear' field as a number and pad it out with leading zeros. * Modified 'labelalpha' field There is a similar change concerning the 'labelalpha' field, which has been split up into 'labelalpha' and 'extraalpha'. With a label like "Jon95a", 'labelalpha' holds "Jon95" while the extra letter is handled by 'extraalpha'. 'extraalpha' is similar to 'labelyear' in that it holds an integer. The conversion of the integer to a string takes places on the LaTeX side of the workflow, i.e., you'll usually have a formatting directive like this: \DeclareFieldFormat{extraalpha}{\mknumalph{#1}} There is also a 'maxextraalpha' counter which holds the highest number found in any 'extraalpha' field. * Modified/extended name hashes Starting with this release, there are two name hash fields, 'namehash' and 'fullhash'. See the manual for details. Essentially, the difference is that the 'namehash' is derived from the visible 'labelname' list (subject to the 'maxnames' and 'minnames' options) whereas 'fullhash' is always derived from the full list. Note that the original behavior of 'namehash' in previous releases used to be similar to the current behavior of 'fullhash'. This has caused some confusion. The 'namehash' should now be in line with the expectations of most users and style authors. Those who actually want the original behavior may still use the 'fullhash' field. * 'edition' field now more flexible/controllable by styles In previous biblatex releases, 'edition' was an integer-only field. The integer test was performed on the BibTeX side of the workflow, in biblatex.bst. Starting with this release, the test is performed on the LaTeX side, i.e., in the format definition: \DeclareFieldFormat{edition}{% \ifinteger{#1} {\mkbibordinal{#1}~\bibstring{edition}} {#1}% } As you can see, the edition is printed as "Nth edition" if the edition field holds an integer, and as a literal string if not. This means that you can now put things like "5th, revised and expanded edition" in the 'edition' field without having to resort to the 'note' field. It also implies that styles get full control over the 'edition' field. Style authors who adapt this formatting directive should note that ordinals are gender-specific in Romanic languages ('edition' is a feminine noun in French, Italian, and Spanish, hence the ordinal must be feminine as well). In addition to the default definition in biblatex.def, the 'edition' field is therefore adapted in french.lbx, italian.lbx, and spanish.lbx. * Support for bibliographic data in external TeX files This release add a \printfile command which is similar to \printtext but gets the text from an external file, i.e., \printfile{file.tex} boils down to \printtext{\input{file.tex}} but does nothing if the file does not exist. The point of all this is that styles which print the fields 'abstract' and/or 'annotation' may support an alternative way of adding abstracts or annotations to the bibliography. biblatex.def provides the following code for that: \newcommand*{\bibabstractprefix}{bibabstract-} \newcommand*{\bibannotationprefix}{bibannotation-} \newbibmacro*{annotation}{% \iffieldundef{annotation} {\printfile[annotation]{\bibannotationprefix \thefield{entrykey}.tex}}% {\printfield{annotation}}} \newbibmacro*{abstract}{% \iffieldundef{abstract} {\printfile[abstract]{\bibabstractprefix \thefield{entrykey}.tex}}% {\printfield{abstract}}} Instead of including the text in the bib file, it may now be stored in an external LaTeX file. For example, instead of saying @Article{key1, abstract = {This is an abstract of entry `key1'.} ... in the bib file, you create a file named 'bibabstract-key1.tex' and put the abstract in this file. The name of the external file must be the entry key prefixed with 'bibabstract-' or 'bibannotation-', respectively. The 'reading' style makes use of this. Also note that, when using the reference code above, a field in the bib file takes precedence over external files. E.g., the 'reading' style will not look for 'bibabstract-key1.tex' if the 'key1' entry in the bib file has an 'abstract' field. Note that this feature needs to be enabled explicitly by setting the package option 'loadfiles'. The option is disabled by default for performance reasons. Using external files is strongly recommended if you have long abstracts or a lot of annotations since this may increase memory requirements significantly. See the changelog for more pointers. * Support for 'American-style' punctuation Biblatex finally supports 'American-style' punctuation, i.e., certain punctuation marks placed after a closing quote can be moved inside the quotes automatically. See \DeclareQuotePunctuation and \mkbibquote in the manual. The 'american' and 'canadian' localization modules enable this feature for periods and commas. See the hints in the manual for details. * \DeclareCapitalPunctuation replaces \(Enable|Disable)CapitalAfter The configuration commands \EnableCapitalAfter and \DisableCapitalAfter have been removed and are superseded by \DeclareQuotePunctuation. \DeclareQuotePunctuation works like \EnableCapitalAfter except that it takes a list of characters as its argument. The function of \DisableCapitalAfter is now implicit (all characters not included in the list will not trigger capitalization). The change affects the configuration interface only. The default user-level behavior of biblatex has not changed (capitalization after periods, exclamation marks, questions marks; with the '(n)german' and '(n)austrian' localization modules also after colons). * Hyphenation exceptions in bibliography strings This release adds an interface for definining hyphenation exceptions in lbx files and/or the document preamble. See \DeclareHyphenationExceptions and \DefineHyphenationExceptions in the manual. * Configurable number tests The number tests \ifnumeral and \ifnumerals, which are also used by \mkpageprefix and \mkpagetotal, may be adapted. See the commands \DeclareNumChars, \DeclareRangeChars, and \DeclareRangeCommands for details. * Added 'firstinits' package option By popular request, I've added a package option which switches all first names to initials. Use the \iffirstinits test to query its state. The test has already been incorporated into the formatting directives in biblatex.def. However, authors of custom styles using redefined name formatting directives may want to incorporate it into their style, too. * Added high-level '\bibpagespunct' macro \bibpagespunct is a high-level user macro similar to \labelnamepunct and \subtitlepunct. As with the 'firstinits' package option, it's incorporated in the standard styles so you may want to do the same in custom styles. * Added some expert entry options See the entry options 'skipbib', 'skiplos', 'skiplab', and 'dataonly' in the manual. Note that 'skiplab' and 'dataonly' are intended for hacking only! * Improved KOMA-Script and Memoir support The headings 'bibliography' and 'shorthands' are responsive to the 'bibtotoc' and 'bibtotocnumbered' class options of the 'KOMA' classes now. See also \ifkomabibtotoc, \ifkomabibtotocnumbered, and \ifmemoirbibintoc. * Improved natbib compatibility style I've added some missing features to the natbib compatibility style. Most notably, citation aliasing is now possible. Note that this is intended for legacy files only. In newly created files, it is preferable to use biblatex's 'shorthand' field. * Spaces in file names Whether file names may or may not contain spaces generally depends on whether or not the underlying TeX binary supports that. This is beyond biblatex's control. If the underlying engine supports it, biblatex should not have any problems with spaces in a file name. However, neither traditional BibTeX nor bibtex8 seem to be capable of handling .bib files with spaces in their name. For .bib files which supply bibliographic data, there is no fix short of avoiding spaces in the file name. For the auxiliary .bib file automatically generated by biblatex this release adds a workaround. Spaces in the name of this file, which is only used internally, will be converted to underscores. * New language-specific csf files for bibtex8 I've added some csf file for use with bibtex8 to the 'resources' subdirectory. They implement the proper sorting order for German, Danish, Norwegian, and Swedish in Latin 1, Latin 9, and Windows Ansi encoding. German users should note that even bibtex8 is not able to handle the German letter \ss properly. You may need to resort to fields like 'sortname' and 'sorttitle' even when using these csf files. * Extended manual In addition to the usual manual updates related to new features, I've also added some new material to the 'hints and caveats' section in the author guide of the manual. RELEASE NOTES FOR VERSION 0.7 The changelog of this release is the longest list of changes in any biblatex release so far. Skimming the full list in biblatex.pdf is highly recommended. In the following, I will focus on changes 'under the hood' which are not mentioned in the changelog, point out things which may break backwards compatibility, and comment on some improvements which may not be immediately obvious from looking at the changelog because they pertain to a set of changes rather than a single one. * User and author interface stable Starting with this release, the user and author interface of this package may be considered as stable. This means that I will try to refrain from making syntactically or functionally incompatible changes to the core package, unless I'm forced to do so because of a bug or because one of the most recently added features turns out to be really awkward. Essentially, citation and bibliography styles written for this version should work with biblatex 1.0 with no or at most minor modifications. Please note that this is a development aim, but there is no guarantee. Also note that the definitions in biblatex.def (mainly the formatting directives) are not guaranteed to be stable at this point. In other words: if you use the default definitions, your style will inherit possible improvements in future versions. If you use modified formatting directives, you may need to update them to integrate new functions. That should be fairly easy, though. * CTAN staging area for biblatex styles There's a new location for contributed biblatex styles, it's: macros/latex/exptl/biblatex-contrib/ Contributed styles should go into a subdirectory of the above location. E.g., a style called 'MLA' would go into: macros/latex/exptl/biblatex-contrib/mla/ Note that the exptl/ subtree is intended for experimental or beta code. As soon as biblatex hits 1.0 and moves out of exptl/ to macros/latex/biblatex/ there's be a corresponding biblatex-contrib. At this point, all contributed styles should be considered experimental because the core package is still in beta. * Removed biblatex.cbx and biblatex.bbx I've removed the files biblatex.cbx and biblatex.bbx from the distribution. The code formerly found in biblatex.cbx has been moved to biblatex.def. The code formerly found in biblatex.bbx has been split up. The most generic parts have been moved to biblatex.def. The less generic parts, which are closely tied to biblatex's standard bibliography style, are now part of standard.bbx. I've also rearranged some of the bibmacros formerly found in the above files and renamed some of them. If you have been using some of that code in a custom bibliography style, don't worry, all the code is still there, but parts of it may be arranged differently (e.g., a bibmacro may have been split up into two macros or two macro may have been merged into one) and the names of some bibmacros may have changed. Note that biblatex.def is always loaded, but standard.bbx is not. If you have been using code which is now part of standard.bbx in a custom bibliography style, you need to copy the relevant parts to your style. * New dependency on etoolbox.sty Some of the most generic parts of biblatex.sty have been moved to an independent package called 'etoolbox', which is now required. The package is available from CTAN and may also be useful for style authors. * Type-specific formatting directives All formatting directives may now be defined on a per-type basis; e.g.: \DeclareFieldFormat[article]{title}{\mkbibquote{#1}} would define the format of the 'title' field of @article entries only. The fallback mechanism for formats now works as follows. The command \printfield{title}, when used in an @article driver, would check for the following formats (in this order): title [article] title default This also applies to cases where a specific formatting directive is requested explicitly, i.e. \printfield[myformat]{title}, would check for these formats: myformat [article] myformat default The point is that you can override formats on a per-type basis without having to hack any drivers. * Truncation with 'and others' now supported by literal lists Truncating a list with 'and others' in the .bib file is now supported by both name lists and literal lists. This used to be specific to name lists. See \ifandothers and \ifmoreitems as well as \finallistdelim and \andmoredelim for details. * Introducing entry options and style-specific options This release introduces the concept of an entry option and a new 'options' field. The 'useprefix' field has been replaced by an entry option. Instead of: useprefix = {true} you now use options = {useprefix=true} There are two more predefined entry options called 'useauthor' and 'useeditor'. These options may still be used globally to set the default behavior. In addition to that, Bibliography and citation styles may define additional package and entry options. See \DeclareEntryOption and \DeclareBibliographyOption for details. * Introducing multicite commands This release introduces an entirely new class of citation commands called 'multicite' commands. The point of a multicite command is that its argument may be a fully qualified list of citations where each key has its own pre- and postnote. The syntax is straightforward. Instead of: \cite[See][55]{key1}; \cite[12]{key2}; \cite[93]{key3} you can now say: \cites[See][55]{key1}[12]{key2}[93]{key3} This is particularly useful with parenthetical citations and citations given in footnotes. It's also possible to assign a pre- and/or postnote to the entire list. These global notes are given in parentheses: \footcites(See)(and chapter 3)[55]{key1}[12]{key2}[93]{key3} See \cites, \parencites, \footcites, etc. in the manual. There is also an \autocites command (a multicite version of \autocite). Defining new multicite commands is very easy because they are based on the regular citation commands. See the documentation of \DeclareMultiCiteCommand for details. * Improved trackers and tracking control The 'trackers' provided by biblatex have been greatly improved and extended. This release also adds new trackers which correspond to the requirements of some common citation styles. See the package options 'pagetracker', 'citetracker', 'ibidtracker', 'opcittracker', and 'loccittracker' for all the gory details. Also see \ifciteibid, \ifopcit, and \ifloccit. It's possible to control tracking in the document, see \pagetrackertrue/false and \citetrackertrue/false for details. Note that text commands like \citetitle are now exluded from tracking by default. See also the point below. * Tracker reset support It's possible to reset trackers and citation styles and several different levels. For the built-in trackers, see the package option 'citereset' as well as the user-level command \citereset. For style-specific reset support, see \InitializeCitationStyle, \InitializeBibliographyStyle, \OnManualCitation, and the user-level command \mancite. * New entry types, more custom entry types This release adds the entry types 'periodical' and 'patent', which are fully supported by the standard styles. Several new custom types have also been added. The custom types are not supported by default, but they may be useful in custom styles. * New field/list subtype: key field/list I've introduced a new field/list data subtype called key field/key list. They may hold printable data or localization keys and work as follows: A test is performed to determine whether the value of the field is a known localization key. If so, the localized string is printed. If not, the value is printed as is. * Improved postnote handling, alternative pagination schemes The handling of page numbers in the 'pages' field and in the postnote argument to citation commands has been improved significantly. Biblatex does range detection now and recognizes Roman numerals as numbers. It also supports alternative 'pagination' schemes (columns, line or verse numbers, etc.). See the fields 'pagination' and 'bookpagination' and related pointers in the changelog. See also \mkpageprefix, \ppspace, \pno, \ppno, \nopp, \psq, \psqq. * Support for unique names in citations This release introduces support for unique names in citations. Some author-year and author-title citation styles require unambiguous names in citations. For example, with entries such as John Smith 1995 Edward Smith 1995 citations would be rendered as J. Smith 1995 E. Smith 1995 rather than Smith 1995a Smith 1995b See the package option 'uniquename' and the special counter 'uniquename' for details. Note that this feature is now enabled by default in the following styles: authoryear, authoryear-comp, authortitle-terse, authortitle-tcomp. * Improved support for numeric labels The 'defernums' package option addresses the problem of discontinuous numbering when using a numeric style in combination with bibliography filters. If this option is enabled, the numeric labels are assigned the first time an entry is printed in any bibliography. This is similar to the traditional algorithm used by LaTeX to assign numeric labels. * Alternative, non-inheriting cross-referencing mechanism This release introduces an alternative cross-referencing mechanism which does not inherit any data. It's useful in styles which format cross-referenced entries differently. See the description of the field 'xref' and related pointers in the manual. * Support for different encodings Biblatex is now capable of handling .bib files with an encoding which is different from the encoding of the .tex file. See the 'bibencoding' package option for details. * More robust handling of citation keys This release adds some normalization code which deals with special characters in citation keys. A typical example are keys which contain an underscore. This should be much more robust now. * Renamed fields The 'journal' field has been renamed to 'journaltitle' but the old name is still supported as an alias. There's also a 'journalsubtitle' field and fields for the title and the subtitle of a single issue. In other words, article entries now support a complete set of titles similar to inbook-like entry types: journaltitle/issuetitle/title essentially correspond to maintitle/booktitle/title. The field name 'id' turned out to be incompatible with JabRef. Apart from that, the name is a bit too generic for what this field holds anyway. It's called 'eid' now (electronic ID) and holds an article ID used by online journals or journals which are also available online. * 'labelctitle' replaced by 'singletitle' The 'labelctitle' field has removed in favor of a different mechanism using a test called \ifsingletitle. The package option 'labelctitle' has also been renamed to 'singletitle'. * Alphabetic label now configurable The alphabetic label provided in the 'labelalpha' field is now configurable to a certain extend. It is responsive to the global package options 'maxnames' and 'minnames'. It's also possible to influence the handling of truncated labels by redefining \labelalphaothers. * Name types This release introduces the concept of a name type. This is best explained by example. Suppose a book has a compiler rather than an editor. In previous versions of this package, there was no way to override the string 'editor' and 'edited by'. Starting with this release, you may specify 'compiler' as an editor type: @book{..., editor = {...}, editortype = {compiler}, Supported editor types are 'editor' (the default) and 'compiler'. Note that this mechanism is hooked up to bibliography strings hence it may be extended. See the fields 'authortype', 'editortype', and 'name[a-c]type' in the manual. * Consistent set of wrappers I've completed the generic wrapper commands provided by biblatex so that they form a complete set. Instead of using the solution in the left column of the following list, use the wrapper in the right column: (...) -> \mkbibparens{...} [...] -> \mkbibbrackets{...} \footnote{...} -> \mkbibfootnote{...} \textsuperscript{...} -> \mkbibsuperscript{...} \emph{...} -> \mkbibemph{...} \enquote{...} -> \mkbibquote{...} ``...'' -> \mkbibquote{...} The wrappers integrate much better with biblatex and they also provide additional features. * New citation styles, some styles renamed I've renamed all verbose citation styles from 'authortitle-*' to 'verbose-*' and added some new styles. See the changelog for details. * natbib compatibility style To facilitate the move from natbib to biblatex, this release adds a special natbib compatibility style which maps natbib's core citation commands to equivalent biblatex commands. See the package option 'natbib' for details. * All citation commands scan ahead for punctuation Starting with this release, all citation commands scan ahead for punctuation to avoid double punctuation at the end of a citation. This used to be a feature exclusive to \autocite. The 'autopunct' package option and the \DeclareAutoPunctuation command will now affect all citation commands, not only \autocite. * Support for font style adaptation of punctuation This release implements an alternative way of dealing with punctuation after a field printed in a different font (for example, a title printed in italics). The standard (La)TeX way of dealing with this problem is to add a small amount of space (the so-called italic correction) to avoid clashes between the final letter of a word in italics and the following (upright) punctuation mark. Biblatex is now capable of adapting the punctuation to the font of the preceeding field. See '\mkbibemph' and '\setpunctfont' for details. Note that this feature is experimental. It may very well have a few quirks. Also note that it is disabled by default. Use the 'punctfont' package option to enable it. * Extended language support: Norwegian, Danish This release comes with a norsk.lbx and a danish.lbx file. The translations have been contributed by Johannes Wilm. RELEASE NOTES FOR VERSION 0.6 * Style-independent citations This release introduces a special command for style-independent citations. The idea behind the \autocite command is to provide higher-level citation markup which makes global switching from inline citations to citations given in footnotes (or as superscripts) possible. The \autocite command is built on top of lower-level commands like \parencite and \footcite. The citation style provides an \autocite definition by way of \DeclareAutoCiteCommand. This definition may be activated by way of the 'autocite' package option. See the documentation of \autocite in the manual for further details. * Forcing capitalized name prefixes One thing that's been on my personal wishlist for some time is an equivalent to natbib's \Citet command. This release finally introduces additional citation commands which force capitalized name prefixes (provided that there is a prefix and that it is to be printed as part of the citation, i.e. the 'useprefix' option is enabled). The new citation commands are defined as follows in biblatex.cbx: \newcommand*{\Cite}{\bibsentence\cite} \newcommand*{\Textcite}{\bibsentence\textcite} \newcommand*{\Parencite}{\bibsentence\parencite} \newcommand*{\Footcite}{\bibsentence\footcite} \newcommand*{\Citeauthor}{\bibsentence\citeauthor} Here's how it works. Biblatex's punctuation tracker is based on TeX's space factor. All the \bibsentence command does is setting the space factor to a special sentinel value which is detected by \bibstring. The name formatting directive used by all citation commands now incorporates the new \ifcapital test. This test is true if the punctuation tracker would capitalize a bibliography string at this point. If the formatting directive detects the sentinel value, it will capitalize the name prefix (if applicable). A handy side-effect of this approach is that a possible 'prenote' argument is taken into account automatically. For example: '\cite{vandoren}' prints 'van Doren 1995' and '\Cite{vandoren}' prints 'Van Doren 1995' but '\Cite[See]{vandoren}' prints 'See van Doren 1995'. This also works in conjunction with bibliography strings. For example, if the citation style replaces the standard citation by something like '\bibstring{ibid}', then '\cite{vandoren}' prints 'ibid.' but '\Cite{vandoren}' prints 'Ibid.'. In other words, unless the citation style is doing something very unusual, there is no need to define \Cite et al. explicitly with \DeclareCiteCommand. The default definitions should work fine in all normal cases. If the style doesn't print any names but rather numerical or alphabetic citations then nothing is capitalized, so that's no problem either. * Custom filters for \printbibliography See \defbibfilter and the 'filter' option of \printbibliography in the manual. * Support for unsorted bibliographies See the package option 'sorting=none'. * Automatic truncation of literal lists This release introduces the package options 'maxitems' and 'minitems' which are similar to 'maxnames' and 'minnames' but affect literal lists. There are also corresponding (local) options for \printbibliography, \printshorthands, and so on. * Improved support for corporate authors and editors There are two new name lists ('shortauthor' and 'shorteditor') which may be helpful when dealing with corporate authors and editors. Basically, 'author' and 'editor' are used in the bibliography whereas 'shortauthor' and 'shorteditor' are used in citations. The point is that you can give a short form of the name for use in citations. For example: @Type{key, author = {{National Aeronautics and Space Administration (NASA)}}, shortauthor = {NASA}, ... } This will print "NASA" in citations but "National Aeronautics and Space Administration (NASA)" in the bibliography. Note that 'shortauthor' and 'shorteditor' are name lists, not literal fields. This means that corporate names must be wrapped in an additional pair of curly braces. * Improved support for articles: journal series and electronic ID Journal series and article IDs are now catered for by the standard styles (entry type 'article'). Note that the 'articleid' field has been renamed to 'eid'. See the annotated bibliography in the 'examples' directory for examples. * DOI support The 'doi' field is now catered for by the standard styles (complete with hyperlinks). See the annotated bibliography in the 'examples' directory for examples. * Fine-grained control of title formatting Previous versions of this package provided two formatting directives for the title field: 'title' (for entry types like 'book', 'collection', etc.) and 'titlein' (for 'article', 'inbook', 'incollection', etc.). I've enhanced this scheme such that the format of the title may be defined on a per-type basis. In biblatex.def you'll find the following directives for the bibliography: \DeclareFieldFormat{title:book}{\emph{#1}\isdot} \DeclareFieldFormat{title:inbook}{\enquote{#1}\midsentence} ... as well as dedicated directives for the titles in citations: \DeclareFieldFormat{citetitle:book}{\emph{#1}\isdot} \DeclareFieldFormat{citetitle:inbook}{\enquote{#1}\midsentence} ... and in the list of shorthands: \DeclareFieldFormat{lostitle:book}{\emph{#1}\isdot} \DeclareFieldFormat{lostitle:inbook}{\enquote{#1}\midsentence} ... I've updated all generic definitions in biblatex.cbx, biblatex.bbx, and standard.bbx accordingly. Note that the 'title:type' directives are used for both the 'title' and the 'subtitle' field (which are wrapped in a \printtext command controlling the formatting, see the 'title+stitle' bibmacro in biblatex.bbx for an example of how it works). In other words: redefining the 'subtitle' field formatting directive has no effect. * Rearranged localization keys I've rearranged and extended the localization keys quite a bit. This also implies several changes in biblatex.bbx. * Support for KOMA-Script and Memoir The default definitions of the bibliography headings (as defined in biblatex.def) are now automatically adapted for the KOMA-Script classes and the Memoir class. * Improved Spanish support The Spanish localization module now handles the Spanish word 'and' properly ('y' or 'e', depending on the context). * Italian support This release comes with a new italian.lbx file. The translations have been contributed by Enrico Gregorio. RELEASE NOTES FOR VERSION 0.5 My original plan for 0.5 was to make minor changes only and focus on fixing bugs. Since only a few issues turned up (memory issues in biblatex.bst), I ended up implementing new things from the wishlist. Please note that the wishlist is closed until after version 1.0. * New author-title citation styles I've added some verbose author-title styles which may be of interest for users in the humanities. The styles are called 'authortitle-verb' and 'authortitle-cverb'. The 'traditional style has been renamed to 'authortitle-trad' and there is an additional new style called 'authortitle-strad'. The styles support shorthands and are fully hyperlinked. The links point to the first, verbose citation instead of the bibliography so these styles may be used without a bibliography, if desired. I've also added a matching 'dummy' bibliography style for every citation style. The dummy style will simply load one of the more generic backend styles. For example, the 'authortitle-verb' style loads the 'authortitle' style. The point is that you may simply use the 'style' package option instead of 'citestyle' plus 'bibstyle'. * Conditional special fields, optimizations in biblatex.bst The special fields 'labelalpha', 'labelctitle', 'labelnumber', and 'labelyear' are conditional now. If a style requires one of those fields, it needs to request them by setting the corresponding package option. E.g., all numeric styles include the line \ExecuteBibliographyOptions{labelnumber} This will instruct biblatex to provide the 'labelnumber' field which is undefined by default now. Making these fields conditional allows for some memory-related optimizations in biblatex.bst. * Author-level support for full citations This version adds an author-level command which makes it possible to execute a bibliography driver in a citation command. See '\rundriver' in the manual. * Page tracker I've implemented a page tracker. The page tracker records the real page on which citations, entries in the bibliography, and entries in the list of shorthands end up. It can work on a per page basis or per double page spread. The page tracker is disabled by default. See the package option 'pagetracker' and the commands '\iffirstonpage' and '\ifsamepage' in the manual. * Unique indentification of reference instances Every 'instance' of a reference is now uniquely identified by a value of the 'citecount' counter. In other words: this counter is incremented for every key processed by any citation command, for every item in the bibliography and for every item in the list of shorthands. This is required by the page tracker but it's also useful if you need to generate a unique anchor name for hyperlinks. * Extended support for hyperlinks I've renamed '\bibhyperlink' to '\bibhyperref' and added generic '\bibhypertarget' and '\bibhyperlink' commands. '\bibhyperref' creates a link from a citation to the corresponding item in the bibliography. '\bibhypertarget' and '\bibhyperlink' are more generic and correspond to the '\hypertarget' and '\hyperlink' commands of the hyperref package. The point here is that you don't need an explicit '\ifhyperref' check. If hyperlinks are disabled, these wrappers will simply pass on their text argument. As an additional benefit, they also provide better anchor placement. The anchors created by '\hypertarget' seem to be located at the baseline, i.e. if you click on a link you get the impression that your PDF viewer jumps to the line of text just below the one you mean. * More name lists See the 'annotator', 'commentator', 'introduction', 'foreword', and 'afterword' lists in the annotated example. * Special fields for indexing See the 'indextitle' and 'indexsorttitle' fields in the annotated example and the indexing examples. * Spanish support This release comes with a preliminary spanish.lbx file. The translations have been contributed by Ignacio Fern\'andez Galv\'an. Some advanced features are missing from this file because they are still under scrutiny but it should nevertheless be perfectly funtional. * Examples I've added a biblatex showcase with some example files in the 'examples' subdirectory. There's an example for every citation style and some generic examples demonstrating multiple bibliographies, split bibliographies, indexing, and so on. RELEASE NOTES FOR VERSION 0.4 * Wishlist closed As of this release, the wishlist is closed until after version 1.0. There are already more wishes in the pipeline than I can implement in time for 1.0... RELEASE NOTES FOR VERSION 0.3 The changelog for this release is shockingly long so I'll just point out the general developments behind the individual entries in the changelog. See the full changelog for all the gory details. Note that styles written for version 0.2 will not work with 0.3. * New data type: literal list This release introduces a new data type for literal lists. The point of a literal list is that the list is split up at the 'and' but the individual items are not dissected further. This is intended for fields such as 'location' and 'publisher' since they may contain a list of items but these items are not personal names. I have modified the macro names of the entire data interface for lists to match the change. All macros with the term 'list' in their name are renamed such that 'list' is replaced by 'name(s)'. For example, \printlist is now \printnames, \DeclareListFormat is \DeclareNameFormat, and so on. The old names are used for new macros which deal with literal lists. The complete list of affected macros is given in the changelog. Note that the names of the macros which dump the unformatted data have changes as well (\biblist -> \thename; \thelist (new); \bibfield -> \thefield). These changes will require updates to all custom citation and bibliography styles. However, the changes are only a matter of some search & replace commands. I'm sorry about the inconvenience but I think the new naming scheme is better than having macro names like \printliterallist. I've decided to go for it now since biblatex is still in beta. As part of these changes, the data type of the following fields has been changed from 'literal field' to 'literal list': location, origlocation, publisher, institution, organization. * Support for hyperref Hyperref support is available now. This means that citations may be transformed into links pointing to the bibliography. All standard citation styles support that out of the box, custom styles need to use the new hyperref interface. It works like this: the anchor (i.e. the target of the link) is set automatically by biblatex hence the bibliography style does not need to do anything special. The citation style is responsible for marking the link area. This is just a matter of passing the relevant part of the citation to a special macro or formatting directive doing the low-level work. See the changelog for pointers to the relevant sections of the manual. * Support for back references I've added support for back references. The page numbers are provided in the 'pageref' field which uses the new literal list data type. Printing them is just a matter of \printlist{pageref}. Note that you need to enable the 'backref' package option to get any back reference data. There is also a bibmacro called 'pageref' in biblatex.bbx which adds a label. Bibliography styles should print the list via \usebibmacro{pageref}. There are two related list formatting directives in biblatex.def. The default directive just prints the list as is, using a comma as a separator. The directive 'pageref:comp' prints a sequence of more than two consecutive pages as a range. The easiest way to try it out is: \DeclareListAlias{pageref}{pageref:comp}. The references are restricted to page numbers, back references to sections are not supported. This is a deliberate decision. I haven't bothered implementing back references to sections because LaTeX's referencing mechanism is notoriously unreliable in this respect. It essentially provides two pieces of information: the formatted value of the last counter incremented by way of \refstepcounter and the page number. The latter value is usually unambiguous but the former could refer to just about everything. The implications of this become obvious when you're using the backref package with its 'ref' option (rather than 'pageref') and put \cite commands in footnotes. The bibliography will then include something like 'sections 1, 2, 3', but these numbers do not refer to sections, these are footnote numbers! Getting back references to sections right would require reimplementing LaTeX's entire referencing mechanism (or interfacing with a package doing that) and I don't want to get into that business just yet. I may look into support for the zref package later, but that's something for a post-1.0 release of biblatex. * Rearranged author-title citation styles I've rearranged the author-title citation styles because most people seem to expect the behavior of the old 'authortitle-verb' style from the plain 'authortitle' style. So 'authortitle-verb' is the plain 'authortitle' style now. The style formerly known as 'authortitle' has been renamed to 'authortitle-terse', 'authortitle-comp' is 'authortitle-cterse' now. I've also added a new 'authortitle-comp' style to round off this subset of styles. * Handling of thebibliography/theshorthands streamlined The handling of thebibliography and theshorthands as well as some related facilities has been overhauled and streamlined. See the changelog and section 4.2.2 of the manual for details. * Handling of 'and others' simplified The way biblatex handles the string 'and others', which is used in bib files to truncate a list of names, has been overhauled and simplified. Essentially, I have removed 'moreauthor' and similar fields since biblatex handles this internally now. All style authors need to do is use \ifandothers and/or \ifmorenames. See the manual for details. * Improved \addtocategory \addtocategory now cycles its arguments through the aux file. This means that it may be used in the preamble and anywhere in the document body, even after \printbibliography. RELEASE NOTES FOR VERSION 0.2 * Internal changes in bibliography styles I have rearranged all bibliography styles. It should be more obvious now how many code is shared by the bibliography styles, namely all 'driver' code. The shared code has been moved to standard.bbx, so think of that as the biblatex standard style. This code is used by numeric.bbx, alphabetic.bbx, authortitle.bbx, and authoryear.bbx; standard.bbx is not meant to be used stand-alone. A few bibmacros have also been moved to biblatex.bbx. * Internal changes in citation styles There is only one change affecting the citation styles. The 'postnote' bibmacro in biblatex.cbx now automatically inserts a prefix like 'p.' or 'pp.' where applicable. * Optional argument for \printtext \printtext takes an optional argument now. The point is that you can use \printtext as a formatting hook. The advantage of this approach is that \printtext integrates with the punctuation tracking. I have revised biblatex.bbx to use this approach where applicable. * New fields There are several new fields, some of which are supported by the standard styles. This has lead to further changes in biblatex.bbx, including changes to the names of existing bibmacros.