bibtexconv(1)

NAME
bibtexconv - BibTeX Converter

SYNOPSIS
bibtexconv BibTeX_file [...]
[-B bibtex_file_name | --export-to-bibtex bibtex_file_name]
[-b bibtex_file_prefix| --export-to-separate-bibtexs bibtex_file_prefix]
[-X xml_file_name | --export-to-xml xml_file_name]
[-x xml_file_prefix | --export-to-separate-xmls xml_file_prefix]
[-C custom_file_name | --export-to-custom custom_file_name]
[-D directory | --store-downloads directory]
[-m name:mapping_file:key_column:value_column | --mapping name:mapping_file:key_column:value_column]
[-s string | --nbsp string]
[-l string | --linebreak string]
[-n | --non-interactive]
[-U | --check-urls] [-u | --only-check-new-urls]
[-w | --ignore-updates-for-html]
[-a | --add-url-command]
[-i | --skip-notes-with-isbn-and-issn] [-I | --add-notes-with-isbn-and-issn]
[-q | --quiet]
bibtexconv [-h | --help]
bibtexconv [-v | --version]

DESCRIPTION
bibtexconv is a BibTeX file converter which allows one to export BibTeX entries to other formats, including customly defined text output. Furthermore, it provides the possibility to check URLs (including MD5, size and MIME type computations) and to verify ISBN and ISSN numbers.
bibtexconv provides an interactive mode (usually used in form of export scripts) which allows for fine-granular selection of entries, sorting and export template specification.

OPTIONS
The following arguments may be provided:

BibTeX_file [...]
    The BibTeX input file. Multiple files may be provided.

-B bibtex_file_name | --export-to-bibtex bibtex_file_name
    Write the results as BibTeX into the given file.

-b bibtex_file_prefix| --export-to-separate-bibtexs bibtex_file_prefix
    Write the results as BibTeX; for each entry, an own file will be created. The filename will be generated from given prefix (e.g. "/tmp/MyBibTex-"), the entry key and ".bib".

-X xml_file_name | --export-to-xml xml_file_name
    Write the results as XML (as used by IETF Internet Draft processing tools) into the given file.

-x xml_file_prefix | --export-to-separate-xmls xml_file_prefix
    Write the results as XML; for each entry, an own file will be created. The filename will be generated from given prefix (e.g. "/tmp/MyBibTex-"), the entry key and ".xml".

-C custom_file_name | --export-to-custom custom_file_name
    Write the results as custom output into the given file.

-D directory | --store-downloads directory
    Combined with --check-urls, all checked references are downloaded and stored in the given directory. Existing files will be overwritten.

-m name:mapping_file:key_column:value_column | --mapping name:mapping_file:key_column:value_column
    Read key and value columns from a mapping file into a mapping with given name.

-s string | --nbsp string
    Replace non-breakable space by given string (for example, "&nbsp;" when writing HTML).

-l string | --linebreak string
    Replace linebreak by given string (for example, "<br />" when writing HTML).

-n | --non-interactive
    Turns on non-interactive mode. Useful for just performing URL checks and ISBN/ISSN verification.

-U | --check-urls
    Check URLs by downloading the content file and adding MD5, size and MIME type entries.

-u | --only-check-new-urls
    Combined with --check-urls, checks are only performed for new entries where MD5, size and/or MIME type are still unknown.

-w | --ignore-updates-for-html
    Ignore changes in HTML files when checking URLs. This is useful for dynamically-generated web pages, where each retrieval creates a new, different HTML file.

-a | --add-url-command
    Add \url{} commands to url tags in BibTeX export.

-i | --skip-notes-with-isbn-and-issn
    When reading the BibTeX file, ignore "note" items with ISBN and ISSN.

-I | --add-notes-with-isbn-and-issn
    When writing a BibTeX file, create "note" items with ISBN and ISSN.

-q | --quiet
    Reduces output verbosity.

-h | --help
    Prints command-line parameters.

-v | --version
    Prints program version.

COMMANDS
After startup, bibtexconv accepts the following commands from standard input (not as command-line arguments!):

cite key [custom1 ... custom9]
    Select specific entry in the input BibTeX file, given by key. Optionally, up to nine custom strings may be attached to the selected entry.

citeAll
    Select all entries in the input BibTeX file.

clear
    Remove all selected citations, i.e. no citation will be selected.

sort key/[A|D] ...
    Sort the selected citations, according to key and ascending (A) or descending (D) ordering. The key corresponds to a key in the BibTeX file. Multiple keys may be defined, e.g. sort year/D month/D day/D title/A.

echo string
    Write given string to standard output.

export
    Export selected entries to standard output, according to configured printing template.

include file
    Include another export script, given by file name.

monthNames jan feb mar apr may jun jul aug sep oct nov dec
    Changes textual representation of month names. This is necessary when non-English names are required for export.

nbsp
    Changes textual representation of the "non-breakable space", for example &nbsp; in HTML or ~ in BibTeX.

templatenew
    Begin a new template definition. Initially, the template will be empty.

template+ template_string
    Add the provided template string to the template. template+ allows one to define a complex template consisting of multiple template+ lines, to enhance readability. Within the template, the following placeholders can be used:

    %{abstract}
        Insert the BibTeX "abstract" content (i.e. the abstract of the publication).

    %{address}
        Insert the BibTeX "address" content (i.e. the address of the publication, usually the conference or publisher location).

    %{booktitle}
        Insert the BibTeX "booktitle" content (i.e. the book title of the publication).

    %{custom-1} | ... | %{custom-9}
        Insert the corresponding value provided as custom1 ... custom9 to the "cite" command. Some conversions may be applied when using "xmlStyle" (see below).

    %{custom-1-as-is} | ... | %{custom-9-as-is}
        Insert the corresponding value provided as custom1 ... custom9 to the "cite" command. No conversions are applied.

    %{day}
        Insert the BibTeX "day" content (i.e. the publication day of the publication).

    %{doi}
        Insert the BibTeX "doi" content (i.e. the DOI number of the publication).

    %{edition}
        Insert the BibTeX "edition" content (i.e. the edition of the publication).

    %{editor}
        Insert the BibTeX "editor" content (i.e. the editor of the publication).

    %{file}
        Insert the BibTeX "file" content (i.e. the URL of a download file).

    %{how-published} | %{howpublished}
        Insert the BibTeX "howpublished" content (i.e. the publication type of the publication).

    %{institution}
        Insert the BibTeX "institution" content (i.e. the institution of the publication).

    %{isbn}
        Insert the BibTeX "isbn" content (i.e. the ISBN of the publication).

    %{issn}
        Insert the BibTeX "issn" content (i.e. the ISSN of the publication).

    %{issue}
        Insert the BibTeX "issue" content (i.e. the issue of the publication).

    %{journal}
        Insert the BibTeX "journal" content (i.e. the journal containing the publication).

    %{keywords}
        Insert the BibTeX "keywords" content (i.e. the keywords of the publication).

    %{language}
        Insert the BibTeX "language" content (i.e. the language of the publication).

    %{location}
        Insert the BibTeX "location" content (i.e. the location of the publication, usually the publisher location).

    %{month}
        Insert the BibTeX "month" content (i.e. the publication month of the publication).

    %{note}
        Insert the BibTeX "note" content (i.e. some additional information about the publication).

    %{number}
        Insert the BibTeX "number" content (i.e. the number of the publication).

    %{numpages}
        Insert the BibTeX "numpages" content (i.e. the number of pages of the publication).

    %{organization}
        Insert the BibTeX "organization" content (i.e. the organization of the publication).

    %{pages}
        Insert the BibTeX "pages" content (i.e. the pages range of the publication).

    %{publisher} | %{$}
        Insert the BibTeX "publisher" content (i.e. the publisher of the publication).

    %{repository}
        Insert the BibTeX "repository" content (i.e. the URL of a software repository).

    %{school}
        Insert the BibTeX "school" content (i.e. the school of the publication).

    %{series}
        Insert the BibTeX "series" content (i.e. the series of the publication).

    %{subtitle}
        Insert the BibTeX "subtitle" content (i.e. the subtitle of the publication).

    %{title}
        Insert the BibTeX "title" content (i.e. the title of the publication).

    %{type}
        Insert the BibTeX "type" content (i.e. the type of the publication).

    %{url}
        Insert the BibTeX "url" content (i.e. the URL of the publication).

    %{urldate}
        Insert the BibTeX "urldate" content (i.e. the last visit date of the publication's URL).

    %{url.checked}
        Insert the BibTeX "url.checked" content. It contains the date of the last URL check. This field is a custom field used by BibTeXConv.

    %{url.keywords}
        Insert the BibTeX "url.keywords" content. This field contains the keywords of the download from "url" (e.g. PDF keywords in a PDF file). This field is a custom field used by BibTeXConv.

    %{url.md5}
        Insert the BibTeX "url.md5" content. It contains the MD5 sum of the download from "url". This field is a custom field used by BibTeXConv.

    %{url.mime}
        Insert the BibTeX "url.mime" content. It contains the MIME type of the download from "url", e.g. "application/pdf" for PDF. This field is a custom field used by BibTeXConv.

    %{url.pagesize}
        Insert the BibTeX "url.pagesize" content. It contains the paper format of the download from "url", e.g. "595.276 x 841.89 pts (A4)" for DIN A4 or "612 x 792 pts (letter)" for US Letter. This field is a custom field used by BibTeXConv.

    %{url.size.UNIT}
        Insert the BibTeX "url.size" content. It contains the size of the download. UNIT may be "b" for bytes, "kib" for KiB, "mib" for MiB, or "gib" for GiB. For convenience, UNIT is case-insensitive. This field is a custom field used by BibTeXConv.

    %{content-language}
        Insert the BibTeX "content-language" content. It contains the language of the actual publication content. For instance, "content-language" could be "chinese", while title and abstract (given by "language") is "english". This field is a custom field used by BibTeXConv.

    %{urn}
        Insert the BibTeX "urn" content. This field contains the Uniform Resource Name (URN) number, used by many national libraries. This field is a custom field used by BibTeXConv.

    %{version}
        Insert the BibTeX "version" content (i.e. the version of the publication).

    %{volume}
        Insert the BibTeX "volume" content (i.e. the volume of the publication).

    %{year}
        Insert the BibTeX "year" content (i.e. the publication year of the publication).

    The template allows the evaluation of blocks, with and without error containment:

    [ ... ]: Blocks with error containment
        Blocks in square brackets are evaluated. If a referenced placeholder, e.g. %{url}, does not exist, the block will be emptied. This allows one to add content, e.g. the URL, if it exists in the BibTeX reference, but produce nothing if this information is unavailable.

    ( ... ): Blocks without error containment
        Like [ ... ], but if the evaluation fails, the failure is propagated to the next upper level. That is, a construct like [ ... ( ... )] will produce no output if the inner block evaluation fails (and therefore the parentheses propagate the failure to the next upper block). In contrast, [ ... [ ... ]] would only result in an empty inner block.
        Note: Parentheses in the template need to be escaped, i.e. \( and \). Unescaped parentheses are interpreted as block definition!

    Furthermore, by using blocks, some conditional evaluation is possible:

    %{is?COMPARISON}
        Success, if the block until the placeholder is equal to COMPARISON.

    %{is-not?COMPARISON}
        Success, if the block until the placeholder is not equal to COMPARISON.

    %{is-less-than?COMPARISON}
        Success, if the block until the placeholder is less than COMPARISON.

    %{is-less-than-or-equal?COMPARISON}
        Success, if the block until the placeholder is less than or equal COMPARISON.

    %{is-greater-than?COMPARISON}
        Success, if the block until the placeholder is greater than COMPARISON.

    %{is-greater-than-or-equal?COMPARISON}
        Success, if the block until the placeholder is greater or equal COMPARISON.

    %{map:NAME}
        Success, if the mapping NAME contains a mapping from the block until the placeholder. The block is evaluated to this mapping.

    Finally, for handling the authors list of a publication, some special placeholders can be used:

    %{begin-author-loop}
        Begin loop over all authors. Within the loop, the following placeholders apply to the current author in the loop.

    %{author-family-name}
        Insert the current author's family name.

    %{author-given-name}
        Insert the current author's given name.

    %{is-first-author?}
        Success, if the current author is the first author.

    %{is-not-first-author?}
        Success, if the current author is not the first author.

    %{is-last-author?}
        Success, if the current author is the last author.

    %{is-not-last-author?}
        Success, if the current author is not the last author.

    %{end-author-loop}
        End the author loop started with %{begin-author-loop}.

header header_string
    Add the provided header string before each exported publication entry.

trailer trailer_string
    Add the provided trailer string after each exported publication entry.

utf8Style
    Use UTF-8 style conventions, i.e. export characters without conversion.

xmlStyle
    Use XML style conventions, i.e. export characters with some conversions to handle special characters not allowed in XML (e.g. "&amp;" for "&", "&lt;" for <, etc.).

EXIT STATUS
The bibtexconv tool exits with 0 on success, and >0 in case of an error.

EXAMPLES
Have a look into /usr/share/doc/bibtexconv/examples/ (or corresponding path of your system) for example export scripts. The export scripts contain the commands which are read by bibtexconv from standard input.

bibtexconv \
    /usr/share/doc/bibtexconv/examples/ExampleReferences.bib \
    --export-to-bibtex=UpdatedReferences.bib \
    --check-urls --only-check-new-urls --non-interactive
    Checks URLs of all entries in /usr/share/doc/bibtexconv/examples/ExampleReferences.bib, adds MD5, size and MIME type items and writes the results to UpdatedReferences.bib.

bibtexconv \
    /usr/share/doc/bibtexconv/examples/ExampleReferences.bib \
    </usr/share/doc/bibtexconv/examples/web-example1.export >MyPublications.html
    Uses export script /usr/share/doc/bibtexconv/examples/web-example1.export to export references from /usr/share/doc/bibtexconv/examples/ExampleReferences.bib to MyPublications.html as XHTML 1.1.

bibtexconv \
    /usr/share/doc/bibtexconv/examples/ExampleReferences.bib \
    </usr/share/doc/bibtexconv/examples/text-example.export >MyPublications.txt
    Uses export script /usr/share/doc/bibtexconv/examples/text-example.export to export references from /usr/share/doc/bibtexconv/examples/ExampleReferences.bib to MyPublications.txt as plain text.

bibtexconv \
    /usr/share/doc/bibtexconv/examples/ExampleReferences.bib \
    </usr/share/doc/bibtexconv/examples/yaml-example.export >MyPublications.yaml
    Uses export script /usr/share/doc/bibtexconv/examples/yaml-example.export to export references from /usr/share/doc/bibtexconv/examples/ExampleReferences.bib to MyPublications.yaml as YAML file according to Debian Upstream MEtadata GAthered with YAml (UMEGAYA) format (see https://wiki.debian.org/UpstreamMetadata).

bibtexconv \
    /usr/share/doc/bibtexconv/examples/ExampleReferences.bib \
    --non-interactive --export-to-separate-xmls=reference.
    Convert all references to XML references to be includable in IETF Internet Drafts. For each reference, an own file is generated, named with the prefix "reference.", for example reference.Globecom2010.xml for entry Globecom2010.

bibtexconv \
    /usr/share/doc/bibtexconv/examples/ExampleReferences.bib \
    --non-interactive --export-to-separate-bibtexs=
    Convert all references to BibTeX references. For each reference, an own file is generated, named with the prefix "", for example Globecom2010.bib for entry Globecom2010.

NOTES
This program is part of BibTeXConv. The latest version of BibTeXConv can be found on the BibTeXConv Homepage at BibTeXConv Homepage: https://www.nntb.no/~dreibh/bibtexconv/.

AUTHORS
Thomas Dreibholz, Homepage: https://www.nntb.no/~dreibh