diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/biblatex/CHANGES')
-rw-r--r-- | Master/texmf-dist/doc/latex/biblatex/CHANGES | 4272 |
1 files changed, 4272 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/biblatex/CHANGES b/Master/texmf-dist/doc/latex/biblatex/CHANGES new file mode 100644 index 00000000000..85cd8ce9937 --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex/CHANGES @@ -0,0 +1,4272 @@ +RELEASE NOTES FOR VERSION 3.4 + +* Biber version 2.5 is required for biblatex 3.4 +* INCOMPATIBLE CHANGE - There have been major changes to the support for + bibtex as a backend. In order to facilitate future development, the + bibtex and biber code paths have been merged and bibtex as a biblatex + backend is now officially deprecated with a view to discontinued support + in a future release. bibtex as a backend will still work currently with a + reduced feature set. Of particular note are the labelprefix (formerly + prefixnumbers) option and support for shorthand lists, neither of which + will work with the bibtex backend any longer as it was deemed too + difficult to maintain support for these with merged backend code paths. + Please switch to using biber to use these features. The documentation no + longer mentioned biber/bibtex specific features and should be taken as + referring to biber features with limited fallback support for bibtex. +* A new data annotations feature is available which allows attachment of + semantic annotation markers to bibliographic data. Macros are provided + for accessing the annotations during formatting. This allows, for + example, highlighting of particular names in a name list without putting + markup in the data. See the main documentation for details. +* There is a new per-entry option "noinherit" which allows fine-grained + blocking of data inheritance declared with \DeclareDataInheritance. See + the docs for \DeclareDataInheritance. +* A new context-sensitive delimiter interface (\DeclareDelimFormat) is now + available. This is able to vary a delimiter based on where it occurs (in a + citation, in a bib item etc.) A new sample file (04-delimiters) demonstrates the + interface and how it interacts with the basic static delimiter definition interface. +* Arbitrary sets of data fields can now be defined with + \DeclareDatafieldSet. Such sets are now used to determine behaviour in + various places - search the PDF doc for mention of this macro. + Users/style authors can define their own sets of fields and access them + with automatically generated etoolbox list macros. +* Transliteration support during sorting is now possible via + \DeclareSortTranslit. This is useful for sorting languages which are not + directly supported by the UCA+CLDR. The only currently supported + transliteration is for Sanskrit (IAST romanisation->Devanāgarī). Please + open a github ticket if you think you require any other transliterations. +* The \ifempty macro for testing namepart emptiness introduced in 3.3 was a + mistake. If you used this, please use \ifdefvoid instead - this is standard etoolbox. +* The "prefixnumbers" option has been renamed to "labelprefix" since it is + not specific to numeric styles and may be used with alpha label styles + too. Since this option can change citation labels, which are not + contained in a bibliography list, it is no longer an option of + \printbibliography and is now an option of reference contexts. This makes + certain things now possible such as citing the same entry from different + bibliographies with different prefices. +* INCOMPATIBLE CHANGE - The internal field "prefixnumber" is now called + "labelprefix" as the name was a legacy of originally only applying to + numeric styles. If you refer to this field in your style, please change it. + Using the field "prefixnumber" will issue a deprecation warning +* With biber, for fields of datatype "date" in the datamodel, the internal + macros, package options and datepart fields are automatically created. + This makes defining custom date fields easier. +* The \nameparts macro inside \DeclareNameFormat is no longer necessary. + Name part macros will be automatically populated and \nameparts will be + ignored if found. +* Bugfixes + +RELEASE NOTES FOR VERSION 3.3 + +* Biber version 2.4 is required for biblatex 3.3 +* The \Declare*Option commands have a new optional argument when using + biber which declares the datatype of the option. It defaults to + "boolean" if not specified. If you define any custom options in your + style, you may want to specify the correct datatype (see docs). However, + it is unlikely that this will impact anything at the moment as this option + only used internally by biber for some checks. +* INCOMPATIBLE CHANGE - There have been major changes to the handling of + name lists in order to generalise name handling beyond the narrow + confines of the legacy bibtex name parts of "last, first, prefix, + suffix". These changes only apply when using biber as the backend and + mainly affect style authors. + * In general in macro names, "first" is now "given" and "last" is now "family": + + The option "firstinits" has been renamed to "giveninits" and the option "sortfirstinits" + to "sortgiveninits". The old names are available as legacy aliases. + Style authors using the internal toggles associated with these options will + need to change "first" to "given" in their names. + + Name formats and the \mkbibname* macros have been internally renamed by + replacing "first" with "given" and "last" with "family". There are aliases in place for the + older names. Please use the new names in any custom styles. + + * The most significant change concerns the definition of name formats. + Style authors will need to update any styles which use + \DeclareNameFormat or \DeclareIndexNameFormat which no longer accept + 8 arguments which are hard coded to the nameparts which bibtex + understands. These macros now take one argument which is a + comma-separated list which must be parsed with: + + \nameparts{#1}% + + All name formats should include this line, usually as the first line in + the format. Valid nameparts are now defined by the datamodel and the + default is compatible with standard bibtex with "last" renamed to + "family" and "first" renamed to "given". The default datamodel + declaration is: + + \DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given} + + This declaration automatically creates the \mkbibname<namepart> macros and the + internal machinery for the \nameparts macro. After using the \nameparts macro + as described above, each namepart will be available in two macros with + the following name structure: + + \namepart<namepart> + \namepart<namepart>i + + The macro ending in "i" is the macro contain the namepart initials. + So, use of \nameparts{#1} in the default datamodel will result in these + macros being defined for use: + + \namepartprefix + \namepartprefixi + \namepartfamily + \namepartfamilyi + \namepartsuffix + \namepartsuffixi + \namepartgiven + \namepartgiveni + + As a further example, the name format: + + \DeclareNameFormat{first-last}{% + \iffirstinits + {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} + {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% + \usebibmacro{name:andothers}} + + is now: + + \DeclareNameAlias{first-last}{given-family}% legacy alias + \DeclareNameFormat{given-family}{% + \nameparts{#1}% + \ifgiveninits + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% + \usebibmacro{name:andothers}} + + See the example 93-nameparts.tex example file for an example of + defining and using a custom namepart, which is now possible due to + these changes. + +RELEASE NOTES FOR VERSION 3.2 + +* Biber version 2.3 is required for biblatex 3.2 +* New label generation options which allow fine-tuning of how name prefices + are handled (see pstrwidth and pcompound options in documentation). +* Some internals have changed regarding prefix space handling in names. + This shouldn't impact normal users but hackers please not that + \blx@sf@apo has been renamed to \blx@sf@prefixchar to better suit the new + \DeclarePrefChars command. Also note that in the standard name printing + macros, \ifpunctmark{'} has been replaced by the more general \ifprefchar. + +RELEASE NOTES FOR VERSION 3.1 + +* Biber version 2.2 is required for biblatex 3.1 +* Added new macros \DeclareNolabel and \DeclareNolabelwidthcount for fine-tuning label generation +* Improved Finnish and Russian localisation +* Many bug fixes + +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 sorting specification. 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 model 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{<entry type>}{% + ... + \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{<entry type>}{% + ... + \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 '<date>=none' options as this feature seems to + be causing some confusion. Setting '<date>=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 '<date>=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{*}{<driver code>} + \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 <pmid> is the unique and stable PubMed ID): + + url = {http://www.ncbi.nlm.nih.gov/pubmed/<pmid>}, + + you may also say: + + eprint = {<pmid>}, + eprinttype = {pubmed}, + + By default, this will be printed as "PMID: <pmid>" in the + bibliography. If hyperref support is enabled, the <pmid> 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 <number> is a unique + and stable identifier): + + url = {http://www.jstor.org/stable/<number>} + + While this will work as expected, full URLs tend to clutter the + bibliography. You may also use: + + eprint = {<number>}, + eprinttype = {jstor}, + + to get the more readable "JSTOR: <number>" format which also + supports hyperlinks (the <number> 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 +<jobname>-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. |