diff options
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-cv/biblatex-cv.dbx')
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/biblatex-cv/biblatex-cv.dbx | 386 |
1 files changed, 386 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-cv/biblatex-cv.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-cv/biblatex-cv.dbx new file mode 100644 index 0000000000..745ab411bc --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-cv/biblatex-cv.dbx @@ -0,0 +1,386 @@ +\ProvidesFile{biblatex-cv.dbx}[2020/03/11 v0.01 biblatex-cv data model (DES)] + +% Add new data fields for both existing and new entry types +\DeclareDatamodelFields[type=list, datatype=name]{advisor, committee, name, presenter} +\DeclareDatamodelFields[type=list, datatype=literal]{concentration, honors, minor} +\DeclareDatamodelFields[type=field, datatype=integer]{amount, numcites, numlectures, numstudents} +\DeclareDatamodelFields[type=field, datatype=literal]{currency, degree, department, funder, gpa, major, presentationtype} +\DeclareDatamodelFields[type=field, datatype=key]{role, status} +\DeclareDatamodelFields[type=field, format=xsv, datatype=entrykey]{classes, degreelist, semesters} + +% For all name lists, create a new field to indicate if a name has been deleted from the list +\newcommand{\cv@blx@tempa}[1]{% + \newtoggle{cv@blx:delete:#1}% + \DeclareDatamodelFields[type=field, datatype=integer]{#1deleted}% +} +\forcsvlist{\cv@blx@tempa}{afterword, annotator, author, bookauthor, % + commentator, editor, editora, editorb, editorc, foreword, holder, % + introduction, namea, nameb, namec, translator, shortauthor, % + shorteditor, advisor, committee, name, presenter% +} + +% Modify the existing data model inherited from blx-dm.def +\DeclareDatamodelConstraints{ + \constraint[type=data, datatype=pattern, pattern=\regexp{( + ^forthcoming$| + ^inpreparation$| + ^inpress$| + ^inrevision$| + ^prepublished$| + ^submitted$ + )}]{ + \constraintfield{pubstate} + } +} + +% Define global changes to the data model +\DeclareDatamodelConstraints{ + \constraint[type=data, datatype=pattern, + pattern=\regexp{( + ^contributed$| + ^internal$| + ^invited$| + ^job$| + ^keynote$ + )} + ]{ + \constraintfield{presentationtype} + } +} + +% ARTICLE +\DeclareDatamodelEntryfields[article]{numcites} +\DeclareDatamodelConstraints[article]{ + \constraint[type=mandatory]{ + \constraintfield{numcites} + } +} + +% UNPUBLISHED +\DeclareDatamodelEntryfields[unpublished]{journaltitle} + +% THESIS +\DeclareDatamodelConstraints[thesis]{ + \constraint[type=data, datatype=pattern, + pattern=\regexp{( + ^doctoralthesis$| + ^mastersthesis$| + ^undergradthesis$ + )}% + ]{ + \constraintfield{type} + } +} + +% Define the data model for new entry types not defined in blx-dm.def + +% ABSTRACT +% The data model for the abstract entrytype is a modified version of the article entrytype data model. We start by copying the article data model from blx-dm.def +\DeclareDatamodelEntrytypes{abstract} +\DeclareDatamodelEntryfields[abstract]{ + addendum, + annotator, + author, + commentator, + doi, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eid, + eprint, + eprintclass, + eprinttype, + issn, + issue, + issuetitle, + issuesubtitle, + journalsubtitle, + journaltitle, + language, + note, + number, + origlanguage, + pages, + pubstate, + series, + subtitle, + title, + titleaddon, + translator, + version, + volume, +} +\DeclareDatamodelConstraints[abstract]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{year} + } + \constraintfield{author} + \constraintfield{journaltitle} + \constraintfield{title} + } +} + +\DeclareDatamodelEntryfields[abstract]{ + entrysubtype, + presentationtype, + presenter, + presenterdeleted, +} +\DeclareDatamodelConstraints[abstract]{ + \constraint[type=mandatory]{ + \constraintfield{entrysubtype} + \constraintfield{presentationtype} + \constraintfieldsor{ + \constraintfield{presenter} + \constraintfield{presenterdeleted} + } + } + \constraint[type=data, datatype=pattern, + pattern=\regexp{(^poster$|^talk$|)} + ]{ + \constraintfield{entrysubtype} + } +} + +% COMMITTEE +\DeclareDatamodelEntrytypes{committee} +\DeclareDatamodelEntryfields[committee]{ + date,day,endday,endmonth,endyear,month,year, + entrysubtype, + title, + institution, + location, + department, + role, + semesters, +} +\DeclareDatamodelConstraints[committee]{ + \constraint[type=mandatory]{ + \constraintfieldsor{ + \constraintfield{date} + \constraintfield{semesters} + } + \constraintfield{entrysubtype} + \constraintfield{title} + \constraintfield{institution} + } + \constraint[type=data, datatype=pattern, pattern=\regexp{(% + ^departmental$| + ^external$| + ^institutional$ + )}]{ + \constraintfield{entrysubtype} + } +} + +% EDUCATION +\DeclareDatamodelEntrytypes{school} +\DeclareDatamodelEntryfields[school]{ + date,day,endday,endmonth,endyear,month,year, + institution, + location, + department, + degreelist, + gpa, + honors, +} +\DeclareDatamodelConstraints[school]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{year} + } + \constraintfield{institution} + \constraintfield{location} + } +} + +\DeclareDatamodelEntrytypes{degree} +\DeclareDatamodelEntryfields[degree]{ + date,day,endday,endmonth,endyear,month,year, + institution, + location, + department, + degree, + gpa, + honors, + major, + minor, + concentration, + advisor, + committee, + title, +} +\DeclareDatamodelConstraints[degree]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{year} + } + \constraintfield{institution} + \constraintfield{location} + } +} + +% FUNDING +\DeclareDatamodelEntrytypes{funding} +\DeclareDatamodelEntryfields[funding]{ + date,day,endday,endmonth,endyear,month,year, + entrysubtype, + status, + author, + funder, + title, + role, + amount, + currency, + number, + type, +} +\DeclareDatamodelConstraints[funding]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{year} + } + \constraintfield{entrysubtype} + \constraintfield{status} + \constraintfield{author} + \constraintfield{funder} + } + \constraint[type=data, datatype=pattern, pattern=\regexp{(^individual$|^institutional$)}]{ + \constraintfield{entrysubtype} + } + \constraint[ + type=data, datatype=pattern, + pattern=\regexp{(^completed$|^ongoing$|^pending$|^submitted$|^unsuccessful$)} + ]{ + \constraintfield{status} + } +} + +% PRESENTATION +\DeclareDatamodelEntrytypes{presentation} +\DeclareDatamodelEntryfields[presentation]{ + date,day,endday,endmonth,endyear,month,year, + entrysubtype, + author, + presentationtype, + presenter, + presenterdeleted, + title, + institution, + location, + department, +} +\DeclareDatamodelConstraints[presentation]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{year} + } + \constraintfield{entrysubtype} + \constraintfield{author} + \constraintfield{presentationtype} + \constraintfieldsor{ + \constraintfield{presenter} + \constraintfield{presenterdeleted} + } + \constraintfield{title} + \constraintfield{institution} + \constraintfield{location} + } + \constraint[type=data, datatype=pattern, + pattern=\regexp{(^poster$|^talk$|)} + ]{ + \constraintfield{entrysubtype} + } +} + +% STUDENT +\DeclareDatamodelEntrytypes{student} +\DeclareDatamodelEntryfields[student]{ + date,day,endday,endmonth,endyear,month,year, + entrysubtype, + role, + name, + institution, + location, + department, +} +\DeclareDatamodelConstraints[student]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{year} + } + \constraintfield{entrysubtype} + \constraintfield{role} + \constraintfield{name} + \constraintfield{institution} + \constraintfield{location} + } + \constraint[type=data, datatype=pattern, pattern=\regexp{(^masters$|^phd$|^postdoc$|^undergraduate$)}]{ + \constraintfield{entrysubtype} + } + \constraint[type=data, datatype=pattern, pattern=\regexp{(^externalexaminer$|^internalexaminer$|^secondsupervisor$|^supervisor$)}]{ + \constraintfield{role} + } +} + +% TEACHING +\DeclareDatamodelEntrytypes{teaching} +\DeclareDatamodelEntryfields[teaching]{ + date,day,endday,endmonth,endyear,month,year, + entrysubtype, + title, + department, + institution, + location, + number, + numlectures, + numstudents, + role, + classes, +} +\DeclareDatamodelConstraints[teaching]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{classes} + } + \constraintfield{entrysubtype} + \constraintfield{title} + \constraintfield{department} + \constraintfield{institution} + \constraintfield{location} + } + \constraint[type=data, datatype=pattern, pattern=\regexp{(^graduate$|^undergraduate$)}]{ + \constraintfield{entrysubtype} + } +} + +% ADDITIONAL FIELDS TO ADD TO SUPPORTED ENTRY TYPES +% Education: description, coursework +% Funding: co-investigators, description, publications +% Student: title, funding, current position, description, publications, something to indicate students that dropped out +% Teaching: description, textbook, objectives, rating + +% ADDITIONAL ENTRY TYPES NOT YET SUPPORTED: +% Panels Organized -- Maybe this should be a subtype of \bibtype{committee} +% Panel Discussant -- Maybe this should be a subtype of \bibtype{committee} +% Awards/Honors +% Positions -- permanent, visiting, adjunct, affiliated, ... +% Research Experience +% Media Coverage +% Related skills +% Non-Academic Work +% Professional Memberships/Affiliations +% References |