Skip to contents

Abstract

This article presents a crosswalk between BibTeX and Citation File Format (Druskat et al. 2021), as it is performed by the cffr package (Hernangómez 2021). Several crosswalk models specific for each BibTeX entry type (Patashnik 1988) are proposed. The article also provide examples using real BibTeX entries and tips for developers that would like to implement the crosswalk on different programming languages.

Citation

Please cite this article as:

Hernangómez D (2022). “BibTeX and CFF, a potential crosswalk.” The cffr package, Vignettes.

A BibTeX entry for LaTeX users:

@article{hernangomez2022,
    title        = {{BibTeX} and {CFF}, a potential crosswalk},
    author       = {Diego Hernangómez},
    year         = 2022,
    journal      = {The {cffr} package},
    volume       = {Vignettes}
}

BibTeX and R

BibTeX is a well-known format for storing references created by Oren Patashnik and Leslie Lamport back in 1985. BibTeX that may be reused by another software, like LaTeX, for adding references to a work. An example structure of a BibTeX entry would be:

@book{einstein1921,
    title        = {Relativity: The Special and the General Theory},
    author       = {Einstein, A.},
    year         = 1920,
    publisher    = {Henry Holt and Company},
    address      = {London, United Kingdom},
    isbn         = 9781587340925
}

On this case, the entry (identified as einstein1921) would refer to a book. This entry then can be used on a document and include references to it.

On R (R Core Team 2021), we can replicate this structure using the bibentry() and toBibtex() functions:


entry <- bibentry("book",
  key = "einstein1921",
  title = "Relativity: The Special and the General Theory",
  author = person("A.", "Einstein"),
  year = 1920,
  publisher = "Henry Holt and Company",
  address = "London, United Kingdom",
  isbn = 9781587340925,
)

toBibtex(entry)
#> @Book{einstein1921,
#>   title = {Relativity: The Special and the General Theory},
#>   author = {A. Einstein},
#>   year = {1920},
#>   publisher = {Henry Holt and Company},
#>   address = {London, United Kingdom},
#>   isbn = {9781587340925},
#> }

The final results of the entry as a text string would be parsed as1:

Einstein A (1920). Relativity: The Special and the General Theory. Henry Holt and Company, London, United Kingdom. ISBN 9781587340925.

BibTeX definitions

Patashnik (1988) provides a comprehensive explanation of the BibTeX formats. We can distinguish between Entries and Fields.

Entries

Each entry type defines a different type of work. The 14 entry types defined on BibTeX2 are:

  • @article: An article from a journal or magazine.
  • @book: A book with an explicit publisher.
  • @booklet: A work that is printed and bound, but without a named publisher or sponsoring institution.
  • @conference: The same as @inproceedings, included for Scribe compatibility.
  • @inbook: A part of a book, which may be a chapter (or section or whatever) and/or a range of pages.
  • @incollection: A part of a book having its own title.
  • @inproceedings: An article in a conference proceedings.
  • @manual: Technical documentation.
  • @mastersthesis: A Master’s thesis.
  • @misc: Use this type when nothing else fits.
  • @phdthesis: A PhD thesis.
  • @proceedings: The proceedings of a conference.
  • @techreport: A report published by a school or other institution, usually numbered within a series.
  • @unpublished: A document having an author and title, but not formally published.

Regarding the entries, bibentry() R function does not implement @conference . However, we can replace that key by @inproceedings given that the definition is identical.

Fields

As in the case of Entries, Patashnik (1988) provides also a definition for each of the possible standard BibTeX fields3. An entry can include other fields that would be ignored on the raw implementation of BibTeX:

  • address: Usually the address of the publisher or other of institution.
  • annote: An annotation. It is not used by the standard bibliography styles, but may be used by others that produce an annotated bibliography.
  • author: The name(s) of the author(s), in the format described in the LaTeX book (Lamport 1986).
  • booktitle: Title of a book, part of which is being cited. For @book entries, use the title field instead.
  • chapter: A chapter (or section or whatever) number.
  • crossref: The database key of the entry being cross referenced.
  • edition: The edition of a @book - for example, “Second”. This should be an ordinal, and should have the first letter capitalized, the standard styles convert to lower case when necessary.
  • editor: Name(s) of editor(s), typed as indicated in the LaTeX book (Lamport 1986). If there is also an author field, then the editor field gives the editor of the book or collection in which the reference appears.
  • howpublished: How something strange has been published. The first word should be capitalized.
  • institution: The sponsoring institution of a technical report.
  • journal: A journal name.
  • key: Used for alphabetizing, cross referencing, and creating a label when the author information is missing.
  • month: The month in which the work was published or, for an unpublished work, in which it was written. You should use the standard three-letter abbreviation, as described in Appendix B.1.3 of the LaTeX book (Lamport 1986) (i.e. jan, feb, mar).
  • note: Any additional information that can help the reader. The first word should be capitalized.
  • number: The number of a journal, magazine, technical report, or of a work in a series. An issue of a journal or magazine is usually identified by its volume: and number; the organization that issues a technical report usually gives it a number; and sometimes books are given numbers in a named series.
  • organization: The organization that sponsors a @conference or that publishes a manual.
  • pages: One or more page numbers or range of numbers, such as 42--111 or 7,41,73--97 or 43+.
  • publisher: The publisher’s name.
  • school: The name of the school where a thesis was written.
  • series: The name of a series or set of books. When citing an entire book, the title field gives its title and an optional series field gives the name of a series or multi-volume set in which the book is published.
  • title: The work’s title.
  • type: The type of a technical report—for example, “Research Note”.
  • volume: The volume of a journal or multivolume book.
  • year: The year of publication or, for an unpublished work, the year it was written. Generally it should consist of four numerals, such as 1984.

There is a strict relation between Entries and Fields on BibTeX. Depending on the type of entries, some fields are required while others are optional or even ignored. On the following table, required field are flagged as * and optional fields are flagged as -. Fields on parenthesis () denotes that there are some degree of flexibility on the requirement of the field, see Patashnik (1988) for more information.

BibTeX, required fields by entry
field article book booklet inbook incollection conference,inproceedings
title x x x x x x
year x x o x x x
author x (x) o (x) x x
note o o o o o o
month o o o o o o
address o o o o o
publisher x x x o
editor (x) (x) o o
number o (o) (o) (o) (o)
volume o (o) (o) (o) (o)
pages o (x) o o
series o o o o
booktitle x x
edition o o o
type o o
chapter (x) o
organization o
howpublished o
institution
journal x
school
annote
crossref
key
(cont) BibTeX, required fields by entry
field manual mastersthesis,phdthesis misc proceedings techreport unpublished
title x x o x x x
year o x o x x o
author o x o x x
note o o o o o x
month o o o o o o
address o o o o
publisher o
editor o
number (o) o
volume (o)
pages
series o
booktitle
edition o
type o o
chapter
organization o o
howpublished o
institution x
journal
school x
annote
crossref
key

It can be observed that just a subset of fields is required in any of the Entries. For example, title, year and author are either required or optional on almost every entry, while crossref, annote or key are never required.

Citation File Format

Citation File Format (CFF) (Druskat et al. 2021) are plain text files with human- and machine-readable citation information for software (and datasets). Among the valid keys of CFF there are two keys, preferred-citation and references of special interest for citing and referring to related works4:

  • preferred-citation: A reference to another work that should be cited instead of the software or dataset itself.

  • references: Reference(s) to other creative works. Similar to a list of references in a paper, references of the software or dataset may include other software (dependencies), or other research products that the software or dataset builds on, but not work describing the software or dataset.

These two keys are expected to be definition.reference objects, therefore they may contain the following keys:

Valid keys on CFF definition-reference objects
abbreviation abstract authors collection-doi collection-title
collection-type commit conference contact copyright
data-type database-provider database date-accessed date-downloaded
date-published date-released department doi edition
editors editors-series end entry filename
format identifiers institution isbn issn
issue issue-date issue-title journal keywords
languages license license-url loc-end loc-start
location medium month nihmsid notes
number number-volumes pages patent-states pmcid
publisher recipients repository repository-artifact repository-code
scope section senders start status
term thesis-type title translators type
url version volume volume-title year
year-original

These keys are the equivalent to the fields of BibTeX (see Fields), with the exception of the key type. On CFF, this key defines the type of work5, therefore this is the equivalent to the BibTeX entries (see Entries).

Proposed crosswalk

The cffr package (Hernangómez 2021) provides utilities from converting BibTeX entries (via the R base function bibentry()) to CFF files and vice-versa. This section describes how the conversion between both formats have been implemented. This crosswalk is based partially on Haines and The Ruby Citation File Format Developers (2021)6.

On the following two section I present an overview of the proposed mapping between the Entries and Fields of BibTeX and the CFF keys. After this initial mapping, I propose further transformations to improve the compatibility between both systems using different Entry Models.

Entry/Type crosswalk

For converting general BibTeX entries to CFF types, the following crosswalk is proposed:

Entry/Type crosswalk: From BibTeX to CFF
BibTeX Entry Value of CFF key: type Notes
@article article
@book book
@booklet pamphlet
@conference conference-paper
@inbook book See Entry Models
@incollection generic See Entry Models
@inproceedings conference-paper
@manual manual
@mastersthesis thesis See Entry Models
@misc generic
@phdthesis thesis See Entry Models
@proceedings proceedings
@techreport report
@unpublished unpublished

Also, given that CFF provides with a wide range of allowed values on type, the following conversion would be performed from CFF to BibTeX:

Entry/Type crosswalk: From CFF to BibTeX
Value of CFF key: type BibTeX Entry Notes
book @book / @inbook See Entry Models
conference @inproceedings
conference-paper @inproceedings
magazine-article @article
manual @manual
newspaper-article @article
pamphlet @booklet
proceedings @proceedings
report @techreport
thesis @mastersthesis / @phdthesis See Entry Models
unpublished @unpublished
generic @misc / @incollection Under specific conditions, see Entry Models
<any other value> @misc

Fields/Key crosswalk

There is a large degree of similarity between the definition and names of some BibTeX fields and CFF keys7. On the following cases, the equivalence is almost straightforward:

BibTeX - CFF Field/Key crosswalk
BibTeX Field CFF key
address See Entry Models
annote -
author authors
booktitle collection-title
chapter section
crossref -
edition edition
editor editors
howpublished medium
institution See Entry Models
journal journal
key -
month month
note notes
number issue
organization See Entry Models
pages start & end
publisher publisher
school See Entry Models
series See Entry Models
title title
type -
volume volume
year year

Additionally, there are other additional CFF keys that have a correspondence with BibLaTeX fields. We propose also to include these fields on the crosswalk8, although they are not part of the core BibTeX fields definition.

BibLaTeX - CFF Field/Key crosswalk
BibLaTeX Field CFF key
abstract abstract
date date-published
doi doi
file filename
isbn isbn
issn issn
issuetitle issue-title
pagetotal pages
translator translators
url url
urldate date-accessed
version version

Entry Models

This section presents the specific mapping proposed for each of the BibTeX entries, providing further information on how each field is treated. Examples are adapted from the xampl.bib file provided with the bibtex package (Patashnik and Berry 2010).

article

The crosswalk of @article does not require any special treatment.

@article Model
BibTeX CFF Note
@article type: article When converting CFF to BibTeX, type magazine-article and newspaper-article are converted to @article.
author* authors
title* title
journal* journal
year* year
volume volume
number issue
pages start and end

Separated by --, i.e,

pages = {3–5}

would be parsed as

start: 3

end: 5

month month As a fallback, month could be extracted also from date (BibLaTeX field)/ date-published
note notes

Examples

BibTeX entry

@article{article-full,
    title        = {The Gnats and Gnus Document Preparation System},
    author       = {Leslie A. Aamport},
    year         = 1986,
    month        = jul,
    journal      = {{G-Animal's} Journal},
    volume       = 41,
    number       = 7,
    pages        = {73+},
    note         = {This is a full ARTICLE entry}
}

CFF entry

type: article
title: The Gnats and Gnus Document Preparation System
authors:
- family-names: Aamport
  given-names: Leslie A.
year: '1986'
month: '7'
journal: G-Animal's Journal
volume: '41'
issue: '7'
notes: This is a full ARTICLE entry
start: 73+

From CFF to BibTeX

@Article{aamport:1986,
  title = {The Gnats and Gnus Document Preparation System},
  author = {Leslie A. Aamport},
  year = {1986},
  month = {jul},
  journal = {G-Animal's Journal},
  volume = {41},
  number = {7},
  pages = {73+},
  note = {This is a full ARTICLE entry},
}

book/inbook

In terms of field required on BibTeX, the only difference between @book and @inbook is that the latter requires also a chapter or pages, while for @book these fields are not even optional. So we propose here to identify an @inbook on CFF as a book with section and start-end fields (CFF).

Another specificity is that series field is mapped to collection-title and address is mapped as the address of the publisher (CFF).

@book/@inbook Model
BibTeX CFF Note
@book type: book
@inbook type: book For identifying an @inbook in CFF, assess if section or start-end information is available
author* authors
editor* editors
title* title
publisher* publisher
year* year
chapter* section Only required on @inbook
pages* start and end Only required on @inbook
volume volume
number issue
series collection-title
address address property of publisher As a fallback, the field location can be used
edition edition
month month See Note on article
note notes

Examples: book

BibTeX entry

@book{book-full,
    title        = {Seminumerical Algorithms},
    author       = {Donald E. Knuth},
    year         = 1981,
    month        = 10,
    publisher    = {Addison-Wesley},
    address      = {Reading, Massachusetts},
    series       = {The Art of Computer Programming},
    volume       = 2,
    note         = {This is a full BOOK entry},
    edition      = {Second}
}

CFF entry

type: book
title: Seminumerical Algorithms
authors:
- family-names: Knuth
  given-names: Donald E.
year: '1981'
month: '10'
publisher:
  name: Addison-Wesley
  address: Reading, Massachusetts
volume: '2'
notes: This is a full BOOK entry
edition: Second
collection-title: The Art of Computer Programming

From CFF to BibTeX

@Book{knuth:1981,
  title = {Seminumerical Algorithms},
  author = {Donald E. Knuth},
  year = {1981},
  month = {oct},
  publisher = {Addison-Wesley},
  address = {Reading, Massachusetts},
  series = {The Art of Computer Programming},
  volume = {2},
  note = {This is a full BOOK entry},
  edition = {Second},
}

Examples: inbook

BibTeX entry

@inbook{inbook-full,
    title        = {Fundamental Algorithms},
    author       = {Donald E. Knuth},
    year         = 1973,
    month        = 10,
    publisher    = {Addison-Wesley},
    address      = {Reading, Massachusetts},
    series       = {The Art of Computer Programming},
    volume       = 1,
    pages        = {10--119},
    note         = {This is a full INBOOK entry},
    edition      = {Second},
    type         = {Section},
    chapter      = {1.2}
}

CFF entry

type: book
title: Fundamental Algorithms
authors:
- family-names: Knuth
  given-names: Donald E.
year: '1973'
month: '10'
publisher:
  name: Addison-Wesley
  address: Reading, Massachusetts
volume: '1'
notes: This is a full INBOOK entry
edition: Second
section: '1.2'
start: '10'
end: '119'
collection-title: The Art of Computer Programming

From CFF to BibTeX

@InBook{knuth:1973,
  title = {Fundamental Algorithms},
  author = {Donald E. Knuth},
  year = {1973},
  month = {oct},
  publisher = {Addison-Wesley},
  address = {Reading, Massachusetts},
  series = {The Art of Computer Programming},
  volume = {1},
  pages = {10--119},
  note = {This is a full INBOOK entry},
  chapter = {1.2},
  edition = {Second},
}

booklet

In @booklet address is mapped to location.

@booklet Model
BibTeX CFF Note
@booklet type: pamphlet
title* title
author* authors
howpublished medium
address location
month month See Note on article
year year As a fallback, year could be extracted also from date (BibLaTeX field)/ date-published
note notes

Examples

BibTeX entry

@booklet{booklet-full,
    title        = {The Programming of Computer Art},
    author       = {Jill C. Knvth},
    date         = {1988-03-14},
    month        = feb,
    address      = {Stanford, California},
    note         = {This is a full BOOKLET entry},
    howpublished = {Vernier Art Center}
}

CFF entry

type: pamphlet
title: The Programming of Computer Art
authors:
- family-names: Knvth
  given-names: Jill C.
date-published: '1988-03-14'
month: '2'
location:
  name: Stanford, California
notes: This is a full BOOKLET entry
medium: Vernier Art Center
year: '1988'

From CFF to BibTeX

@Booklet{knvth:1988,
  title = {The Programming of Computer Art},
  author = {Jill C. Knvth},
  year = {1988},
  month = {feb},
  address = {Stanford, California},
  note = {This is a full BOOKLET entry},
  howpublished = {Vernier Art Center},
  date = {1988-03-14},
}

conference/inproceedings

Note that in this case, organization is mapped to institution, as BibTeX does not prescribe the use of institution on these entries.

@conference/@inproceedings Model
BibTeX CFF Note
@conference / @inproceedings type: conference-paper CFF entries with type =conference are mapped back to @inproceedings.
author* authors
title* title
booktitle* collection-title
year* year
editor editors
volume volume
number issue
series conference
pages start and end See Note on article
address location As a fallback, address property of conference can be used
month month See Note on article
organization institution
publisher publisher
note notes

Examples

BibTeX entry

@inproceedings{inproceedings-full,
    title        = {On Notions of Information Transfer in {VLSI} Circuits},
    author       = {Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis},
    year         = 1983,
    month        = mar,
    booktitle    = {Proc. Fifteenth Annual ACM Symposium on the Theory of Computing},
    publisher    = {Academic Press},
    address      = {Boston},
    series       = {All ACM Conferences},
    number       = 17,
    pages        = {133--139},
    editor       = {Wizard V. Oz and Mihalis Yannakakis},
    organization = {The OX Association for Computing Machinery}
}

CFF entry

type: conference-paper
title: On Notions of Information Transfer in VLSI Circuits
authors:
- family-names: Oaho
  given-names: Alfred V.
- family-names: Ullman
  given-names: Jeffrey D.
- family-names: Yannakakis
  given-names: Mihalis
year: '1983'
month: '3'
collection-title: Proc. Fifteenth Annual ACM Symposium on the Theory of Computing
publisher:
  name: Academic Press
location:
  name: Boston
issue: '17'
editors:
- family-names: Oz
  given-names: Wizard V.
- family-names: Yannakakis
  given-names: Mihalis
start: '133'
end: '139'
conference:
  name: All ACM Conferences
  address: Boston
institution:
  name: The OX Association for Computing Machinery

From CFF to BibTeX

@InProceedings{oahoullman:1983,
  title = {On Notions of Information Transfer in VLSI Circuits},
  author = {Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis},
  year = {1983},
  month = {mar},
  booktitle = {Proc. Fifteenth Annual ACM Symposium on the Theory of Computing},
  publisher = {Academic Press},
  address = {Boston},
  editor = {Wizard V. Oz and Mihalis Yannakakis},
  series = {All ACM Conferences},
  number = {17},
  pages = {133--139},
  organization = {The OX Association for Computing Machinery},
}

incollection

As booktitle is a required field, we propose to map that field to collection-title and the type to generic. Therefore, an @incollection is a type: generic with a collection-title key.

@incollection Model
BibTeX CFF Note
@incollection type: generic Including a collection-title value
author* authors
title* title
booktitle* collection-title
publisher* publisher
year* year
editor editors
volume volume
number issue
series series
type - Ignored
chapter section
pages start and end See Note on article
address address property of publisher See Note on book/inbook
edition edition
month month See Note on article
note notes

Examples

BibTeX entry

@incollection{incollection-full,
    title        = {Semigroups of Recurrences},
    author       = {Daniel D. Lincoll},
    year         = 1977,
    month        = sep,
    booktitle    = {High Speed Computer and Algorithm Organization},
    publisher    = {Academic Press},
    address      = {New York},
    series       = {Fast Computers},
    number       = 23,
    pages        = {179--183},
    note         = {This is a full INCOLLECTION entry},
    editor       = {David J. Lipcoll and D. H. Lawrie and A. H. Sameh},
    chapter      = 3,
    type         = {Part},
    edition      = {Third}
}

CFF entry

type: generic
title: Semigroups of Recurrences
authors:
- family-names: Lincoll
  given-names: Daniel D.
year: '1977'
month: '9'
collection-title: High Speed Computer and Algorithm Organization
publisher:
  name: Academic Press
  address: New York
issue: '23'
notes: This is a full INCOLLECTION entry
editors:
- family-names: Lipcoll
  given-names: David J.
- family-names: Lawrie
  given-names: D. H.
- family-names: Sameh
  given-names: A. H.
section: '3'
edition: Third
start: '179'
end: '183'

From CFF to BibTeX

@InCollection{lincoll:1977,
  title = {Semigroups of Recurrences},
  author = {Daniel D. Lincoll},
  year = {1977},
  month = {sep},
  booktitle = {High Speed Computer and Algorithm Organization},
  publisher = {Academic Press},
  address = {New York},
  editor = {David J. Lipcoll and D. H. Lawrie and A. H. Sameh},
  number = {23},
  pages = {179--183},
  note = {This is a full INCOLLECTION entry},
  chapter = {3},
  edition = {Third},
}

manual

As in the case of conference/inproceedings, organization is mapped to institution.

@manual Model
BibTeX CFF Note
@manual type: manual
title* title
author authors
organization institution
address location
edition edition
month month See Note on article
year year See Note on booklet
note notes

Examples

BibTeX entry

Note that month can’t be parsed to a single integer in the range 1--12 as required on CFF, so it is not parsed to avoid validation errors.

@manual{manual-full,
  title        = {The Definitive Computer Manual},
    author       = {Larry Manmaker},
    year         = 1986,
    month        = {apr-may},
    address      = {Silicon Valley},
    note         = {This is a full MANUAL entry},
    organization = {Chips-R-Us},
    edition      = {Silver}
}

CFF entry

type: manual
title: The Definitive Computer Manual
authors:
- family-names: Manmaker
  given-names: Larry
year: '1986'
location:
  name: Silicon Valley
notes: This is a full MANUAL entry
edition: Silver
institution:
  name: Chips-R-Us

From CFF to BibTeX

@Manual{manmaker:1986,
  title = {The Definitive Computer Manual},
  author = {Larry Manmaker},
  year = {1986},
  address = {Silicon Valley},
  note = {This is a full MANUAL entry},
  edition = {Silver},
  organization = {Chips-R-Us},
}

mastersthesis/phdthesis

In terms of field required on BibTeX, it is identical for both @mastersthesis and @phdthesis.

We propose here to identify each type of thesis using the field thesis-type (CFF). So if thesis-type contains a regex pattern (?i)(phd) it would be recognized as @phdthesis.

@mastersthesis/phdthesis Model
BibTeX CFF Note
@mastersthesis type: thesis Use also thesis-type for identifying the thesis type.
@phdthesis type: thesis Use also thesis-type for identifying the thesis type.
author* authors
title* title
school* institution
year* year
type
address address property of institution See Note on book/inbook
month month See Note on article
note notes

Examples: mastersthesis

BibTeX entry

@mastersthesis{mastersthesis-full,
    title        = {Mastering Thesis Writing},
    author       = {Edouard Masterly},
    year         = 1988,
    month        = jun,
    address      = {English Department},
    note         = {This is a full MASTERSTHESIS entry},
    school       = {Stanford University},
    type         = {Master's project}
}

CFF entry

type: thesis
title: Mastering Thesis Writing
authors:
- family-names: Masterly
  given-names: Edouard
year: '1988'
month: '6'
notes: This is a full MASTERSTHESIS entry
institution:
  name: Stanford University
  address: English Department
thesis-type: Master's Thesis

From CFF to BibTeX

@MastersThesis{masterly:1988,
  title = {Mastering Thesis Writing},
  author = {Edouard Masterly},
  year = {1988},
  month = {jun},
  note = {This is a full MASTERSTHESIS entry},
  school = {Stanford University},
}

Examples: phdthesis

BibTeX entry

@phdthesis{phdthesis-full,
    title        = {Fighting Fire with Fire: Festooning {F}rench Phrases},
    author       = {F. Phidias Phony-Baloney},
    year         = 1988,
    month        = jun,
    address      = {Department of French},
    note         = {This is a full PHDTHESIS entry},
    school       = {Fanstord University},
    type         = {{PhD} Dissertation}
}

CFF entry

type: thesis
title: 'Fighting Fire with Fire: Festooning French Phrases'
authors:
- family-names: Phony-Baloney
  given-names: F. Phidias
year: '1988'
month: '6'
notes: This is a full PHDTHESIS entry
institution:
  name: Fanstord University
  address: Department of French
thesis-type: PhD Thesis

From CFF to BibTeX

@PhdThesis{phony?baloney:1988,
  title = {Fighting Fire with Fire: Festooning French Phrases},
  author = {F. Phidias Phony-Baloney},
  year = {1988},
  month = {jun},
  note = {This is a full PHDTHESIS entry},
  school = {Fanstord University},
}

misc

The crosswalk of @misc does not require any special treatment. This entry does not require any field.

Note als that it is mapped to type: generic as incollection, but in this case booktitle is not even an option, so the proposed definition should cover both @misc and @incollection without problems.

@misc Model
BibTeX CFF Note
@misc type: generic
author authors
title title
howpublished medium
month month See Note on article
year year See Note on booklet
note notes

Examples

BibTeX entry

@misc{misc-full,
    title        = {Handing out random pamphlets in airports},
    author       = {Joe-Bob Missilany},
    year         = 1984,
    month        = oct,
    note         = {This is a full MISC entry},
    howpublished = {Handed out at O'Hare}
}

CFF entry

type: generic
title: Handing out random pamphlets in airports
authors:
- name: anonymous
year: '1984'
month: '10'
notes: This is a MISC entry
medium: Handed out at O'Hare

From CFF to BibTeX

@Misc{anonymous:1984,
  title = {Handing out random pamphlets in airports},
  year = {1984},
  month = {oct},
  note = {This is a MISC entry},
  howpublished = {Handed out at O'Hare},
}

proceedings

The proposed model is similar to conference/inproceedings. Note that @proceedings does not prescribe a author field. On this cases, as authors is required on CFF, we would use anonymous9 when converting to CFF and omit it on the conversion back to CFF.

@conference/@inproceedings Model
BibTeX CFF Note
@proceedings type: proceedings
title* title
year* year
editor editors
volume volume
number issue
series conference
address location As a fallback, address property of conference can be used
month month See Note on article
organization institution
publisher publisher
note notes

Examples

BibTeX entry

@proceedings{proceedings-full,
    title        = {Proc. Fifteenth Annual ACM Symposium on the Theory of Computing},
    year         = 1983,
    month        = mar,
    publisher    = {Academic Press},
    address      = {Boston},
    series       = {All ACM Conferences},
    number       = 17,
    note         = {This is a full PROCEEDINGS entry},
    editor       = {Wizard V. Oz and Mihalis Yannakakis},
    organization = {The OX Association for Computing Machinery}
}

CFF entry

type: proceedings
title: Proc. Fifteenth Annual ACM Symposium on the Theory of Computing
authors:
- name: anonymous
year: '1983'
month: '3'
publisher:
  name: Academic Press
location:
  name: Boston
issue: '17'
notes: This is a full PROCEEDINGS entry
editors:
- family-names: Oz
  given-names: Wizard V.
- family-names: Yannakakis
  given-names: Mihalis
conference:
  name: All ACM Conferences
  address: Boston
institution:
  name: The OX Association for Computing Machinery

From CFF to BibTeX

@Proceedings{anonymous:1983,
  title = {Proc. Fifteenth Annual ACM Symposium on the Theory of Computing},
  year = {1983},
  month = {mar},
  publisher = {Academic Press},
  address = {Boston},
  editor = {Wizard V. Oz and Mihalis Yannakakis},
  series = {All ACM Conferences},
  number = {17},
  note = {This is a full PROCEEDINGS entry},
  organization = {The OX Association for Computing Machinery},
}

techreport

@techreport Model
BibTeX CFF Note
@techreport type: report
author* authors
title* title
institution* institution
year* year
type - Ignored
number issue
address address property of institution See Note on book/inbook
month month See Note on article
note notes

Examples

BibTeX entry

@techreport{techreport-full,
    title        = {A Sorting Algorithm},
    author       = {Tom Terrific},
    year         = 1988,
    month        = oct,
    address      = {Computer Science Department, Fanstord, California},
    number       = 7,
    note         = {This is a full TECHREPORT entry},
    institution  = {Fanstord University},
    type         = {Wishful Research Result}
}

CFF entry

type: report
title: A Sorting Algorithm
authors:
- family-names: Terrific
  given-names: Tom
year: '1988'
month: '10'
issue: '7'
notes: This is a full TECHREPORT entry
institution:
  name: Fanstord University
  address: Computer Science Department, Fanstord, California

From CFF to BibTeX

@TechReport{terrific:1988,
  title = {A Sorting Algorithm},
  author = {Tom Terrific},
  year = {1988},
  month = {oct},
  address = {Computer Science Department, Fanstord, California},
  number = {7},
  note = {This is a full TECHREPORT entry},
  institution = {Fanstord University},
}

unpublished

@unpublished Model
BibTeX CFF Note
@unpublished type: unpublished
author* authors
title* title
note* notes
month month See Note on article
year year See Note on booklet

Examples

BibTeX entry

@unpublished{unpublished-minimal,
    title        = {Lower Bounds for Wishful Research Results},
    author       = {Ulrich Underwood and Ned Net and Paul Pot},
    note         = {Talk at Fanstord University (this is a minimal UNPUBLISHED entry)}
}

CFF entry

type: unpublished
title: Lower Bounds for Wishful Research Results
authors:
- family-names: Underwood
  given-names: Ulrich
- family-names: Net
  given-names: Ned
- family-names: Pot
  given-names: Paul
notes: Talk at Fanstord University (this is a minimal UNPUBLISHED entry)

From CFF to BibTeX

@Unpublished{underwoodnet,
  title = {Lower Bounds for Wishful Research Results},
  author = {Ulrich Underwood and Ned Net and Paul Pot},
  note = {Talk at Fanstord University (this is a minimal UNPUBLISHED entry)},
}

References

Druskat, Stephan, Jurriaan H. Spaaks, Neil Chue Hong, Robert Haines, James Baker, Spencer Bliven, Egon Willighagen, David Pérez-Suárez, and Alexander Konovalov. 2021. “Citation File Format.” https://doi.org/10.5281/zenodo.5171937.
Haines, Robert, and The Ruby Citation File Format Developers. 2021. “Ruby CFF Library.” Zenodo. https://doi.org/10.5281/ZENODO.1184077.
Hernangómez, Diego. 2021. cffr: Generate Citation File Format Metadata for R Packages.” Journal of Open Source Software 6 (67): 3900. https://doi.org/10.21105/joss.03900.
Lamport, Leslie. 1986. LaTeX: A Document Preparation System. Reading, Mass: Addison-Wesley Pub. Co.
Patashnik, Oren. 1988. BIBTEXTING.” https://osl.ugr.es/CTAN/biblio/bibtex/base/btxdoc.pdf.
Patashnik, Oren, and Karl Berry. 2010. “CTAN: Package Bibtex.” https://ctan.org/pkg/bibtex.
R Core Team. 2021. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing; R Foundation for Statistical Computing. https://www.R-project.org/.
Rees, Clea F. 2017. BibLaTeX Cheat Sheet.” https://osl.ugr.es/CTAN/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf.
Xie, Yihui, Christophe Dervieux, and Emily Riederer. 2020. “Bibliographies and Citations.” In R Markdown Cookbook. The R Series. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown-cookbook.

  1. By default R Pandoc would generate the cite on the Chicago author-date format (Xie, Dervieux, and Riederer 2020)↩︎

  2. Other implementations similar to BibTeX, as BibLaTeX, expand the definitions of entries including other types as online, software or dataset. On BibTeX these entries should be reclassified to misc.↩︎

  3. As in the case of the entries, other implementations based on BibTeX may recognize additional fields.↩︎

  4. See Guide to Citation File Format schema version 1.2.0.↩︎

  5. See a complete list of possible values of CFF type on the Guide to Citation File Format schema version 1.2.0.↩︎

  6. Note that this software performs only the conversion from CFF to BibTeX, however cffr can perform the conversion in both directions.↩︎

  7. To avoid errors on the interpretation, names in bold correspond to BibTeX fields while the same number on underscore would refer to CFF.↩︎

  8. See Rees (2017) for a preview of the accepted BibLaTeX fields.↩︎

  9. As proposed on How to deal with unknown individual authors?, (Guide to Citation File Format schema version 1.2.0)↩︎