BIBER(1)
π BIBER(1) π
okay so this is the User Contributed Perl Documentation page for biber, and we are absolutely getting into it. Manual name? BIBER(1). Vibe? immaculate. Letβs go.
β¨ NAME β¨
"biber" β a bibtex replacement for users of biblatex. Thatβs the whole thing, bestie.
πΈ SYNOPSIS πΈ
biber [options] file[.bcf]
biber [options] --tool <datasource>
So biber creates file.bbl using the control file file.bcf β and yes, the .bcf extension is optional. Normally, using it with biblatex requires no options at all, because theyβre all set in biblatex and passed over through the .bcf file. Slay.
In "tool" mode (see the --tool option), it takes a datasource β defaults to the bibtex datasource β and outputs a copy of that datasource with any command-line or config file options applied. Cute.
Please run biber --help for option details. For real, itβs right there.
π¦ DESCRIPTION π¦
biber provides a replacement of the bibtex processor for users of biblatex. Thatβs the core lore.
π OPTIONS π
--annotation-marker=[marker]β sets the suffix you can append to a BibTeX data source field name to say βhey, this field value is a data annotation.β The default is+an.--cacheβ if youβre running as aPAR::Packerbinary, shows the cache location and exits.--clrmacrosβ clears any BibTeX macros (@STRING) between BibLaTeX refsections. This prevents BibTeX warnings about macro redefinitions if youβre using the same datasource several times for different refsections.--collate-options|-c [options]β options to pass to theUnicode::Collateobject used for sorting. The default is'level => "4", variable => "non-ignorable"'. Seeperldoc Unicode::Collatefor details, iykyk.--configfile|-g [file]β use file as the configuration file forbiberinstead of looking in the default locations, which are, in order:biber.confor.biber.confin the current directory$HOME/.biber.conf$ENV{XDG_CONFIG_HOME}/biber/biber.conf$HOME/.config/biber/biber.conf$HOME/Library/biber/biber.conf(Mac OSX only)$ENV{APPDATA}/biber.conf(Windows only)- the output of
kpsewhich biber.conf(if available on the system).
In tool mode (--tool), the biber-tool.conf installed with Biber is always used to set default options if a user-defined config file is not specified. Use the --tool-config option to view the location of the default tool mode config file β lowkey useful as a source for writing your own.
--convert-controlβ converts the.bcfcontrol file into html using an XSLT transform. Can be useful for debugging. The file is named by appending.htmlto the.bcffile.--decodecharsset=[recode set name]β the set of characters included in the conversion routine when decoding LaTeX macros into UTF-8 (which happens when--bblencoding|-Eis set to UTF-8). Set it to"full"to try harder with a much larger set, or"base"to use a smaller basic set. Default is"base". You may want to try"full"if you have less common UTF-8 characters in your data source. The recode sets are defined in the reencoding data file, which can be customised. See the--recodedataoption and the PDF manual. The virtual set name"null"may be specified, which effectively turns off macro decoding.--debug|-Dβ turn on debugging forbiber.--dieondatamodelβ exit immediately with an error if using--validate-datamodeland a datamodel validation error is found. Default is to warn and continue.--fixinitsβ try to fix broken multiple initials when they have no space between them in BibTeX data sources. That is,A.B. ClarkebecomesA. B. Clarkebefore name parsing. This can slightly mess up things like"{U.K. Government}"and other esoteric cases.--help|-hβ show this help message.--input-directory [directory]β.bcfand data files will be looked for first in directory. See the biber PDF documentation for the other possibilities and how this interacts with the--output-directoryoption.--input-encoding|-e [encoding]β specify the encoding of the data source file(s). Default isUTF-8. Normally itβs not necessary to set this as itβs passed via the.bcffile from biblatexβsbibencodingoption. Seeperldoc Encode::Supportedfor a list of supported encodings. The legacy option--bibencodingis supported as an alias.--input-format=bibtex|biblatexmlβ Biber input format. This option only means something in tool mode (see tool option), since normally the input format of a data source is specified in the.bcffile and therefore from the\addbibresoucemacro in BibLaTeX. The default value when in tool mode is'bibtex'.--isbn10β force all ISBNs to 10-digit versions on output. This will convert the ISBN internally to an ISBN object, which will not have hyphens on output. If you use this option and want an ISBN with hyphens in the correct place on output, use the--isbn-normaliseoption.--isbn13β force all ISBNs to 13-digit versions on output. This will convert the ISBN internally to an ISBN object, which will not have hyphens on output. If you use this option and want an ISBN with hyphens in the correct place on output, use the--isbn-normaliseoption.--isbn-normaliseβ normalise ISBNs with hyphens in the correct places on output.--logfile [file]β usefile.blgas the name of the logfile.--listsep=[sep]β use sep as the separator for BibTeX data source list fields. Defaults to BibTeXβs usual'and'.--mincrossrefs|-m [number]β set threshold for crossrefs.--mslang=[langtag]β use langtag as the default BCP47 language tag for multiscript fields when no language is specified for the field in tool mode. Default is'en-US'.--mssep=[sep]β use sep as the separator between parts of a multiscript bibtex datasource field. Default is'_'.--named-annotation-marker=[marker]β sets the separator between the--annotation-markerand the name of a named annotation. The default is":".--namesep=[sep]β use sep as the separator for BibTeX data source name fields. Defaults to BibTeXβs usual'and'.--no-bltxml-schemaβ when reading or writing biblatexml data sources, donβt generate an RNG XML schema from the data model.--noconfβ donβt look for a configfile.--no-default-datamodelβ do not load the default datamodel coming from either the.bcfor, when in tool mode, from the default tool mode config file. Use of this option implies that you will provide a complete datamodel in a config file. This option is useful when you wish to make major modifications to the datamodel, because the simple add/modify operations to the default datamodel via a user config file are not enough. For example, to remove things from the default datamodel, you would use this option and supply a complete, reduced datamodel in the user config file.--nodieonerrorβ donβt exit on errors, just log and continue as far as possible. This can be useful if the error is something from, for example, the underlying BibTeX parsing C library, which can complain about parsing errors which can be ignored.--glob-datasourcesβ by default, glob (expand according to pattern) any data source filenames. Allows data sources to be specified like*.bibto load all.bibfiles in a directory. Can be overridden on a per-dataource basis with the glob option to\addbibresourcein biblatex.--nologβ do not write any logfile.--noskipduplicatesβ donβt skip duplicate bibliography keys if found. The detection of duplicate keys is done across all data sources. Sometimes you might need duplicates when using several data sources across several refsections, in which case you might need to use this option.--nostdmacrosβ donβt automatically define any standard macros like month abbreviations. If you also define these yourself, this option can be used to suppress macro redefinition warnings.--noremove-tmp-dirβ do not remove the temporary directory used for various intermediate files and data before exit (default is false). The name of the directory can be obtained with the--show-tmp-diroption.--noxnameβ disable extended name processing in bibtex data sources. Can be useful if you donβt use this and it causes problems due to auto-detection of extended name format.--onlylogβ do not write any message to screen.--others-string=[string]β use string as the final name in a name field which implies βet alβ. Defaults to BibTeXβs usual'others'.--output-alignβ align field values in neat columns in output. Effect depends on the output format. Default is false. The legacy option--tool-alignis supported as an alias.--output-all-macrodefsβ when outputting bibtex format, whether to output all found macro (@STRINGentries) definitions rather than just definitions for macros which are actually used in the output entries. Default is false.--output-annotation-marker=[marker]β as--annotation-markerbut for tool mode bibtex output. The default is+an.--output-named-annotation-marker=[marker]β as--named-annotation-markerbut for tool mode bibtex output. The default is":".--output-directory [directory]β output files (including log files) are output to directory instead of the current directory. Input files are also looked for in directory before the current directory, unless--input-directoryis also specified, in which case input files are only looked for in the directory specified by--input-directory.--output-encoding|-E [encoding]β specify the encoding of the output.bblfile. Default isUTF-8. Normally itβs not necessary to set this as itβs passed via the.bcffile from biblatexβstexencodingoption. Seeperldoc Encode::Supportedfor a list of supported encodings. The legacy option--bblencodingis supported as an alias.--output-fieldcase=upper|lower|titleβ case for field names output. Effect depends on the output format. Defaults to'upper'. The legacy option--tool-fieldcaseis supported as an alias.--output-field-order=[field1, ... fieldn]β when outputting bibtex format data, this option allows the customisation of the order of fields within entries. The value is a comma-separated string of field names or classes of fields. Fields not mentioned in the list are output in sorted name order after the explicitly specified fields. The classes of fields are:'names'β all name list fields'lists'β all non-name list fields'dates'β all date fields
β¦and by default its value is options,abstract,names,lists,dates. slay, carry on π«Ά
--output-field-replace=[field1:replacefield1, ... fieldn:replacefieldn]β okay so when you're outputting bibtex format, this lets you write outreplacefieldninstead offieldn. it's giving "legacy format revival" β you use it to undo the default driver source map, like--output-field-replace=location:address,journaltitle:journal. and if you need legacy (YEAR/MONTH) date fields in your bibtex output, go peep--output-legacy-dates, iykyk β¨--output-file|-O [file]β writes to file instead of thebasename.bbl. file is relative to--output-directory, if that's set (and absolute paths in this case get stripped down to just the filename only, no cap). file can be absolute if--output-directoryisn't set. file can also be-to output straight to STDOUT. the legacy option--outfileis supported as an alias π--output-format=bibtex|biblatexml|bblβ the Biber output format. default if you don't specify is, of course,bbl(main character energy). the legacy option--outformatis supported as an alias.--output-indent=[num][t]β indentation for the body of entries in the output; the effect depends on the output format. defaults to2. you can follow thenumwithtto specify tabs instead of spaces π. the legacy option--tool-indentis supported as an alias.--output-legacy-datesβ when outputting bibtex format, outputYEAR/MONTHfields instead ofDATE. heads up bestie: this is not possible if the input isn't convertible to legacy format β meaning any date to be output with legacy fields can only have aYEARpart and maybe aMONTHpart. if aDAYorENDYEARpart shows up, the date is not convertible and the legacy output format gets skipped. default isfalse.--output-listsep=[sep]β same as--listsepbut for bibtex output. defaults to BibTeX's usualand.--output-mssep=[sep]β same as--mssepbut for bibtex output. defaults to_.--output-namesep=[sep]β same as--namesepbut for bibtex output. defaults to BibTeX's usualand.--output-no-macrodefsβ when outputting BibTeX format, don't output macro definitions (@STRINGentries). you might not want macro definitions in your output if you keep them in a separate file. iconic separation-of-concerns behavior πΈ--output-resolveβ convenience option that sets all of the--output-resolve-*options totrue. the legacy option--tool-resolveis supported as an alias β¨--output-resolve-xdataβ whether to resolve XDATA inheritance in tool mode, or when--output-format=bibtexin non tool mode. defaults tofalse.--output-resolve-crossrefsβ whether to resolve CROSSREF/XREF inheritance in tool mode, or when--output-format=bibtexin non tool mode. defaults tofalse.--output-resolve-setsβ whether to resolve data sets in tool mode, or when--output-format=bibtexin non tool mode. defaults tofalse.--output-safecharsβ tries to convert UTF-8 chars into LaTeX macros when writing the output π§. this can prevent unknown char errors when you're using PDFLaTeX and inputenc, because inputenc literally doesn't understand all of UTF-8. note (and this is real talk): it's better to switch to XeTeX or LuaTeX to avoid this whole situation. by default it uses the--output-safecharsset"base"set of characters. the legacy option--bblsafecharsis supported as an alias π--output-safecharsset=[recode set name]β the set of characters included in the conversion routine for--output-safechars. set it to"full"to try harder with a much larger set, or"base"to use a basic set. default is"base", which is fine for most use cases π. you may need to load more macro packages to deal with the results of"full"(Dings, Greek characters, special symbols etc.). the recode sets are defined in the reencoding data file which can be customised β see the--recodedataoption and the PDF manual. the legacy option--bblsafecharssetis supported as an alias. the virtual set name"null"may be specified, which effectively turns off macro encoding π¦--output-xdatamarker=[marker]β same as--xdatamarkerbut for tool mode output. default isxdata.--output-xdatasep=[sep]β same as--xdatasepbut for tool mode output. default is-.--output-xnameβ when the output is a.bibBibTeX file in tool mode, whether to output names in the eXtended BibTeX name field format.--output-xnamesep=[sep]β same as--xnamesepbut for tool mode bibtex output. default is=.--quiet|-qβ log only errors. and if you use this option more than once, don't even log errors π (silence, but make it double).--recodedata=[file]β the data file to use for the reencoding between UTF-8 and LaTeX macros π. it defines the sets specified with the--output-safecharssetand--decodecharssetoptions. it defaults torecode_data.xmlin the same directory as Biber'sRecode.pmmodule. see the PDF documentation for the format of this file. if this option is used, then file should be somewhere"kpsewhich"can find it π₯--show-tmp-dirβ prints the location of the temporary directory used for various intermediate files and data. only useful if--noremove-tmp-diris set totrue.--sortdebugβ adds comments to output with sorting keys. useful for debugging π--sortcase=true|falseβ case-sensitive sorting (default istrue).--sortlocale|-l [locale]β set the locale to be used for sorting. the locale is used to add CLDR tailoring to the sort (if available for the locale).--sortupper=true|falseβ whether to sort uppercase before lowercase when sorting (default istrue).--ssl-nointernalcaβ don't try to use the default Mozilla CA certificates when using HTTPS to fetch remote data. this assumes that the user will set one of the perlLWP::UserAgentmodule environment variables to find the CA certs π--ssl-noverify-hostβ turn off host verification when using HTTPS to fetch remote data sources. you may need this if the SSL certificate is self-signed, for example. (yes, that's the vibe-check-skipping option, use accordingly π)--strip-commentsβ in tool mode, strip all comments from the output file.--toolβ run in tool mode π. this mode is datasource centric rather than document centric. biber reads a datasource (and a config file if specified), applies the command-line and config file options to the datasource, and writes a new datasource. essentially, this lets you change your data sources using biber's transformation options (such as source mapping, sorting etc.) β it's giving glow-up for your data π--tool-configβ show the location of the default tool mode config file and exit. useful when you need to copy this file and customise it.--tool-noremove-missing-dependantsβ use this option in tool mode if you don't want to remove"XREF","CROSSREF"and"XDATA"fields from the output which point to a missing entry. useful if you have split datafiles where the e.g."CROSSREF"s are in another file that you're not including in the tool mode run π«Ά--trace|Tβ turn on tracing. also turns on--debug|dand additionally provides a lot of low-level tracing information in the log. so much lore π₯-uβ alias for--input-encoding=UTF-8-Uβ alias for--output-encoding=UTF-8--validate-bltxmlβ schema validate BibLaTeXML datasources against a schema auto-generated from the BibLaTeX datamodel π. the schema will be auto-generated with the name of the.bcffile with a.rngextension. the generated schema can be kept and used with standard XML editors to validate the datasource during datasource development. heads up: the schema validation does not validate all semantic aspects of the datamodel (i.e. the data model constraints) β for this use the"--validate-datamodel"option π--validate-configβ schema validate the biber config file.--validate-controlβ schema validate the.bcfbiblatex control file.--validate-datamodel|-Vβ validate the data against a data model. by default, the data model used is the one in the.bcffile (normal mode) or in the default config file whose path can be shown with the"--tool-config"option (tool mode). use"--no-default-datamodel"to ignore the default data model completely if you're using a complete data model via your own config file (with"--configfile") β--version|-vβ display version number π--winunicode|-Wβ in Windows 10 1803+, turning on the 'Use Unicode UTF8 for worldwide language support' option makes Windows use UTF-8 instead of UTF-16 for many system APIs. if that option is enabled, use this option to turn off biber's UTF-16 filename support on Windows πͺ. this will result in much improved handling of Unicode filenames β literally the glow-up your filenames deserve β¨--wraplines|-wβ wrap lines in the.bblfile.--xdatamarker=[marker]β use marker as the string before--xdatasepwhich introduces an XDATA reference in BibTeX format data sources. not used in BibLaTeXML data sources since it has a dedicated XML attribute"xdata"for this. default isxdata.--xdatasep=[sep]β use sep as the separator between XDATA sub-entry parts in the eXtended name format. see biber docs. default is-.--xnamesep=[sep]β use sep as the separator between namepart names and the namepart values in the eXtended name format. also applies to XDATA references as the separator between--xdatamarkerand the XDATA reference. see biber docs. default is=.--xsvsep=[sep]β use sep as the separator for fields of format typexsvin the data model. a Perl regexp can be specified. defaults to a single comma surrounded by optional whitespace (\s*,\s*) πΈ
π AUTHOR π
Philip Kime, "Philip at kime.org.uk" β the icon himself π
π BUGS & DOCUMENTATION π
to see the full documentation, run texdoc biber or get the biber.pdf manual from SourceForge π.
please report any bugs or feature requests on our Github tracker at <https://github.com/plk/biber/issues> ππ (they literally want your bug reports, bestie, don't be shy)
π COPYRIGHT & LICENSE π
Copyright 2009-2012 FranΓ§ois Charette and Philip Kime, all rights reserved. Copyright 2012-2023 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. (translation: it's free, it's fabulous, but it comes as-is π)
and that's a wrap on the whole page, bestie π«Άβ¨ this edition is perl v5.42.0, dated 2026-08-12, and it's literally the BIBER(1) manual β go forth and cite responsibly π
π
π¦ where this page comes from
- opensuse-leap 16.0: texlive-biber-ms-bin 2025.20250308.svn66478-160000.4.1 Β· LPPL-1.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms