GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  BIBER (3)

.ds Aq ’

NAME

Biber - main module for biber, a bibtex replacement for users of biblatex

CONTENTS

SYNOPSIS



    use Biber;

    my $biber = Biber->new();
    $biber->parse_ctrlfile("example.bcf");
    $biber->prepare;



METHODS

    new



    Initialize the Biber object, optionally passing named options as arguments.



    display_problems



   Output summary of warnings/errors before exit



    biber_tempdir



    my $sections= $biber->biber_tempdir

    Returns a File::Temp directory object for use in various things



    sections



    my $sections= $biber->sections

    Returns a Biber::Sections object describing the bibliography sections



    add_sections



    Adds a Biber::Sections object. Used externally from, e.g. biber



    sortlists



    my $sortlists= $biber->sortlists

    Returns a Biber::SortLists object describing the bibliography sorting lists



    set_output_obj



    Sets the object used to output final results
    Must be a subclass of Biber::Output::base



    get_preamble



    Returns the current preamble as an array ref



    get_output_obj



    Returns the object used to output final results



    set_current_section



    Sets the current section number that we are working on to a section number



    get_current_section



    Gets the current section number that we are working on



    tool_mode_setup



  Fakes parts of the control file for tool mode



    parse_ctrlfile



    This method reads the control file
    generated by biblatex to work out the various biblatex options.
    See Constants.pm for defaults and example of the data structure being built here.



    process_setup



   Place to put misc pre-processing things needed later



    process_setup_tool



   Place to put misc pre-processing things needed later for tool mode



    resolve_alias_refs



  Resolve aliases in xref/crossref/xdata which take keys as values to their real keys

  We use set_datafield as we are overriding the alias in the datasource



    process_citekey_aliases



 Remove citekey aliases from citekeys as they dont point to real
 entries.



    nullable_check



  Check entries for nullable fields



    instantiate_dynamic



    This instantiates any dynamic entries so that they are available
    for processing later on. This has to be done before most all other
    processing so that when we call $section->bibentry($key), as we
    do many times in the code, we dont die because there is a key but
    no Entry object.



    resolve_xdata



    Resolve xdata entries



    cite_setmembers



    Promotes set member to cited status



    process_interentry



    $biber->process_interentry

    This does several things:
    1. Records the set information for use later
    2. Ensures proper inheritance of data from cross-references.
    3. Ensures that crossrefs/xrefs that are directly cited or cross-referenced
       at least mincrossrefs times are included in the bibliography.



    validate_datamodel



  Validate bib data according to a datamodel
  Note that we are validating the internal Biber::Entries
  after they have been created from the datasources so this is
  datasource neutral, as it should be. It is here to enforce
  adherence to what biblatex expects.



    process_entries_pre



    Main processing operations, to generate metadata and entry information
    This method is automatically called by C<prepare>.
    Here we generate the "namehash" and the strings for
    "labelname", "labelyear", "labelalpha", "sortstrings", etc.
    Runs prior to uniqueness processing



    process_entries_post



    More processing operations, to generate things which require uniqueness
    information like namehash
    Runs after uniqueness processing



    process_singletitle



    Track seen work combination for generation of singletitle



    process_extrayear



    Track labelname/year combination for generation of extrayear



    process_extratitle



    Track labelname/labeltitle combination for generation of extratitle



    process_extratitleyear



    Track labeltitle/labelyear combination for generation of extratitleyear



    process_sets



    Postprocess set entries

    Checks for common set errors and enforces dataonly for set members



    process_labelname



    Generate labelname information.



    process_labeldate



    Generate labeldate information



    process_labeltitle



  Generate labeltitle

  Note that this is not conditionalised on the biblatex "labeltitle"
  as labeltitle should always be output since all standard styles need it.
  Only extratitle is conditionalised on the biblatex "labeltitle" option.



    process_fullhash



    Generate fullhash



    process_namehash



    Generate namehash



    process_pername_hashes



    Generate per_name_hashes



    process_visible_names



    Generate the visible name information.
    This is used in various places and it is useful to have it generated in one place.



    process_labelalpha



    Generate the labelalpha and also the variant for sorting



    process_extraalpha



    Generate the extraalpha information



    process_presort



    Put presort fields for an entry into the main Biber bltx state
    so that it is all available in the same place since this can be
    set per-type and globally too.



    process_lists



    Sort and filter lists for a section



    check_list_filter



    Run an entry through a list filter. Returns a boolean.



    generate_sortinfo



    Generate information for sorting



    uniqueness



    Generate the uniqueness information needed when creating .bbl



    create_uniquename_info



    Gather the uniquename information as we look through the names

    What is happening in here is the following:
    We are registering the number of occurences of each name, name+init and fullname
    within a specific context. For example, the context is "global" with uniquename < 5
    and "name list" for uniquename=5 or 6. The keys we store to count this are the most specific
    information for the context, so, for uniquename < 5, this is the full name and for
    uniquename=5 or 6, this is the complete list of full names. These keys have values in a hash
    which are ignored. They serve only to accumulate repeated occurences with the context
    and we dont care about this and so the values are a useful sinkhole for such repetition.

    For example, if we find in the global context a lastname "Smith" in two different entries
    under the same form "Alan Smith", the data structure will look like:

    {Smith}->{global}->{Alan Smith} = 2

    We dont care about the value as this means that there are 2 "Alan Smith"s in the global
    context which need disambiguating identically anyway. So, we just count the keys for the
    lastname "Smith" in the global context to see how ambiguous the lastname itself is. This
    would be "1" and so "Alan Smith" would get uniquename=0 because its unambiguous as just
    "Smith".

    The same goes for "minimal" list context disambiguation for uniquename=5 or 6.
    For example, if we had the lastname "Smith" to disambiguate in two entries with labelname
    "John Smith and Alan Jones", the data structure would look like:

    {Smith}->{Smith+Jones}->{John Smith+Alan Jones} = 2

    Again, counting the keys of the context for the lastname gives us "1" which means we
    have uniquename=0 for "John Smith" in both entries because its the same list. This also works
    for repeated names in the same list "John Smith and Bert Smith". Disambiguating "Smith" in this:

    {Smith}->{Smith+Smith}->{John Smith+Bert Smith} = 2

    So both "John Smith" and "Bert Smith" in this entry get uniquename=0 (of course, as long as
    there are no other "X Smith and Y Smith" entries where X != "John" or Y != "Bert").



    generate_uniquename



   Generate the per-name uniquename values using the information
   harvested by create_uniquename_info()



    create_uniquelist_info



    Gather the uniquename information as we look through the names



    generate_uniquelist



   Generate the per-namelist uniquelist values using the information
   harvested by create_uniquelist_info()



    generate_extra



    Generate information for:

      * extraalpha
      * extrayear
      * extratitle
      * extratitleyear



    generate_singletitle



    Generate the singletitle field, if requested. The information for generating
    this is gathered in process_singletitle()



    sort_list



    Sort a list using information in entries according to a certain sorting scheme.
    Use a flag to skip info messages on first pass



    prepare



    Do the main work.
    Process and sort all entries before writing the output.



    prepare_tool



    Do the main work for tool mode



    fetch_data



    Fetch citekey and dependents data from section datasources
    Expects to find datasource packages named:

    Biber::Input::<type>::<datatype>

    and one defined subroutine called:

    Biber::Input::<type>::<datatype>::extract_entries

    which takes args:

    1: Biber object
    2: Datasource name
    3: Reference to an array of cite keys to look for

    and returns an array of the cite keys it did not find in the datasource



    get_dependents



  Get dependents of the entries for a given list of citekeys. Is called recursively
  until there are no more dependents to look for.



    remove_undef_dependent



    Remove undefined dependent keys from an entry using a map of
    dependent keys to entries



    _parse_sort



   Convenience sub to parse a .bcf sorting section and return nice
   sorting object



    _filedump and _stringdump



    Dump the biber object with Data::Dump for debugging



AUTHORS

Franc\k:,ois Charette, <firmicus at ankabut.net> Philip Kime <philip at kime.org.uk>

BUGS

Please report any bugs or feature requests on our Github tracker at <https://github.com/plk/biber/issues>.

COPYRIGHT & LICENSE

Copyright 2009-2015 Franc\k:,ois Charette and Philip Kime, all rights reserved.

This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 BIBER (3) 2016-04-05

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.