
BibTeX and CFF
A potential crosswalk
Diego Hernangómez 
Source: vignettes/bibtex_cff.Rmd
bibtex_cff.Rmd
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.
Additionally, cffr (Hernangómez 2021) incorporates a function cff_from_bibtex()
than can be used to read and transform BibTeX strings into different formats:
string <- "@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}"
# To cff
library(cffr)
cff_format <- cff_from_bibtex(string)
cff_format
#> type: book
#> title: 'Relativity: The Special and the General Theory'
#> authors:
#> - family-names: Einstein
#> given-names: A.
#> year: '1920'
#> publisher:
#> name: Henry Holt and Company
#> address: London, United Kingdom
#> isbn: '9781587340925'
# To citation R format and bibtex
citation_format <- cff_to_bibtex(cff_format)
class(citation_format)
#> [1] "bibentry"
citation_format
#> Einstein A (1920). _Relativity: The Special and the
#> General Theory_. Henry Holt and Company, London,
#> United Kingdom. ISBN 9781587340925.
toBibtex(citation_format)
#> @Book{einstein:1920,
#> title = {Relativity: The Special and the General Theory},
#> author = {A. Einstein},
#> year = {1920},
#> publisher = {Henry Holt and Company},
#> address = {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
or7,41,73--97
or43+
. - 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 x and optional fields are flagged as o. Fields on parenthesis ((x), (o)) denotes that there are some degree of flexibility on the requirement of the field, see Patashnik (1988) for more information.
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 |
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:
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.
For a better understanding of this paper, when a field is in bold (i.e. @book, edition) the field correspond to BibTex and when the field is underlined (i.e. book, edition) the field correspond to CFF.
Entry/Type crosswalk
For converting general BibTeX entries to CFF types, the following crosswalk is proposed:
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:
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 keys. On the following cases, the equivalence is almost straightforward:
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 crosswalk7, although they are not part of the core BibTeX fields definition.
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.
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
|
month | month | As a fallback, month could be extracted also from date (BibLaTeX field) or 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).
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 | coll ection-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.
BibTeX | CFF | Note |
---|---|---|
@booklet | type: pa mphlet | |
title* | title | |
author* | a uthors | |
howpublished | medium | |
address | lo cation | |
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.
BibTeX | CFF | Note |
---|---|---|
@conference / @inproceedings | type: con ference-paper | CFF entries with type; conference are mapped back to @inproceedings. |
author* | authors | |
title* | title | |
booktitle* | col lection-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.
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.
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.
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{phonybaloney: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 also 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.
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:
- family-names: Missilany
given-names: Joe-Bob
year: '1984'
month: '10'
notes: This is a full MISC entry
medium: Handed out at O'Hare
From CFF to BibTeX
@Misc{missilany:1984,
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},
}
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 anonymous8 when converting to CFF and omit it on the conversion back to CFF.
BibTeX | CFF | Note |
---|---|---|
@proceedings | type: pro ceedings | |
title* | title | |
year* | year | |
editor | editors | |
volume | volume | |
number | issue | |
series | co nference | |
address | location | As a fallback, address property of conference can be used |
month | month | See Note on article |
organization | ins titution | |
publisher | p ublisher | |
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
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
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
[36mℹ
[39m Entry
[34m
[34m"underwoodnet"
[34m
[39m does not have
[32m
[32myear
[32m
[39m
@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)},
}