summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-cv
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-06-02 20:58:00 +0000
committerKarl Berry <karl@freefriends.org>2021-06-02 20:58:00 +0000
commitc7de3b443718d91144c1f540ec7afeae418d0a2a (patch)
treee03c8b1954e1fd53a8025bb9c4287a4196d0cd78 /Master/texmf-dist/tex/latex/biblatex-cv
parent151a999843d462fa0b1dc04bffc407fee5096d10 (diff)
biblatex-cv (2jun21)
git-svn-id: svn://tug.org/texlive/trunk@59433 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-cv')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-cv/american-cv.lbx53
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.bbx736
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.cbx3
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.dbx386
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.sty776
5 files changed, 1954 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-cv/american-cv.lbx b/Master/texmf-dist/tex/latex/biblatex-cv/american-cv.lbx
new file mode 100644
index 00000000000..76022c74475
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-cv/american-cv.lbx
@@ -0,0 +1,53 @@
+\ProvidesFile{american-cv.lbx}[2020/03/11 v0.01 biblatex-cv localization (DES)]
+
+\InheritBibliographyExtras{american}
+\InheritBibliographyStrings{american}
+
+\NewBibliographyString{advisor, advisors, by, ci, committee, completed, concentration, contributed, convenor, doctoralthesis, externalexaminer, gpa, guestlecturer, inrevision, internalexaminer, invited, keynote, lecture, lectures, major, masters, mastersthesis, minor, month, months, numcites, ongoing, pending, phd, pi, postdoc, poster, presented, secondsupervisor, students, submitted, supervisor, talk, title, ta, undergraduate, undergraduatethesis, unsuccessful, with}
+
+\DeclareBibliographyStrings{%
+ advisor = {{advisor}{advisor}},
+ advisors = {{advisors}{advisors}},
+ by = {{by}{by}},
+ ci = {{co-investigator}{CI}},
+ committee = {{committee}{committee}},
+ completed = {{completed}{completed}},
+ concentration = {{concentration}{concentration}},
+ contributed = {{contributed}{contributed}},
+ convenor = {{module convenor}{module convenor}},
+ doctoralthesis = {{doctoral dissertation}{doctoral dissertation}},
+ externalexaminer = {{external examiner}{external examiner}},
+ gpa = {{GPA}{GPA}},
+ guestlecturer = {{guest lecturer}{guest lecturer}},
+ inrevision = {{in revision}{in revision}},
+ internalexaminer = {{internal examiner}{internal examiner}},
+ invited = {{invited}{invited}},
+ keynote = {{keynote}{keynote}},
+ lecture = {{lecture}{lecture}},
+ lectures = {{lectures}{lectures}},
+ major = {{major}{major}},
+ masters = {{masters student}{masters student}},
+ mastersthesis = {{masters thesis}{masters thesis}},
+ minor = {{minor}{minor}},
+ month = {{month}{month}},
+ months = {{months}{months}},
+ numcites = {{number of citations}{number of citations}},
+ ongoing = {{ongoing}{ongoing}},
+ pending = {{pending}{pending}},
+ phd = {{doctoral student}{doctoral student}},
+ pi = {{primary investigator}{PI}},
+ postdoc = {{postdoctoral fellow}{postdoctoral fellow}},
+ poster = {{poster}{poster}},
+ presented = {{presented}{presented}},
+ secondsupervisor = {{second supervisor}{second supervisor}},
+ students = {{students}{students}},
+ submitted = {{submitted}{submitted}},
+ supervisor = {{supervisor}{supervisor}},
+ talk = {{talk}{talk}},
+ title = {{title}{title}},
+ ta = {{teaching assistant}{teaching assistant}},
+ undergraduate = {{undergraduate student}{undergraduate student}},
+ undergraduatethesis = {{undergraduate thesis}{undergraduate thesis}},
+ unsuccessful = {{unsuccessful}{unsuccessful}},
+ with = {{with}{with}},
+}
diff --git a/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.bbx b/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.bbx
new file mode 100644
index 00000000000..aa1865367cb
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.bbx
@@ -0,0 +1,736 @@
+\ProvidesFile{biblatex-cv.bbx}[2020/03/11 v0.01 biblatex-cv bibliography style (DES)]
+
+% The author year style seems better suited for a CV than the standard style
+\RequireBibliographyStyle{authoryear}
+
+\DeclareLanguageMappingSuffix{-cv}
+
+\RequirePackage{datenumber}
+\RequirePackage{fp}
+\RequirePackage{xpatch}
+
+% The verbose setting needs to be a style option because it influences the data model
+\newtoggle{cv@blx:verbose:committee}
+\newtoggle{cv@blx:verbose:education}
+\newtoggle{cv@blx:verbose:teaching}
+
+\DeclareBibliographyOption{verbose-lists}[true]{
+ \settoggle{cv@blx:verbose:committee}{#1}
+ \settoggle{cv@blx:verbose:education}{#1}
+ \settoggle{cv@blx:verbose:teaching}{#1}
+}
+\DeclareBibliographyOption{verbose-committee}[true]{
+ \settoggle{cv@blx:verbose:committee}{#1}
+}
+\DeclareBibliographyOption{verbose-education}[true]{
+ \settoggle{cv@blx:verbose:education}{#1}
+}
+\DeclareBibliographyOption{verbose-teaching}[true]{
+ \settoggle{cv@blx:verbose:teaching}{#1}
+}
+
+% Add new toggles for the bibliography drivers
+\newtoggle{cv@blx:pubstate}
+
+\newtoggle{cv@blx:education:advisor}
+\newtoggle{cv@blx:education:committee}
+\newtoggle{cv@blx:education:gpa}
+\newtoggle{cv@blx:education:honors}
+\newtoggle{cv@blx:education:major}
+\newtoggle{cv@blx:education:minor}
+\newtoggle{cv@blx:education:title}
+\newtoggle{cv@blx:funding:hidePI}
+\newtoggle{cv@blx:funding:role}
+\newtoggle{cv@blx:funding:status}
+\newtoggle{cv@blx:presentation:subtype}
+\newtoggle{cv@blx:presentation:type}
+\newtoggle{cv@blx:student:institution}
+\newtoggle{cv@blx:student:location}
+\newtoggle{cv@blx:student:department}
+\newtoggle{cv@blx:student:type}
+\newtoggle{cv@blx:school:years}
+\newtoggle{cv@blx:teaching:institution}
+\newtoggle{cv@blx:teaching:location}
+\newtoggle{cv@blx:teaching:department}
+
+% A shorthand way to patch the bibliography drivers defined in standard.bbx except for shorthand and set
+\newcommand{\cv@blx@drivers}{article, book, booklet, collection, inbook, incollection, inproceedings, manual, misc, online, patent, periodical, proceedings, report, thesis, unpublished}
+\newcommand{\cv@blx@do}[1]{}
+\newcommand{\cv@blx@patch@drivers}{%
+ \expandafter\forcsvlist\expandafter{%
+ \expandafter\cv@blx@do\expandafter%
+ }\expandafter{\cv@blx@drivers}%
+}
+
+% Define a macro to calculate the number of months between two dates assuming that the starting and ending years, months, and days are given.
+\newcounter{cv@blx@months@start}
+\newcounter{cv@blx@months@end}
+\newcommand{\cv@blx@months}{}
+\newcommand{\cv@blx@calculate@months}{%
+ \ifboolexpr{%
+ not test {\iffieldundef{endyear}} and%
+ not test {\iffieldundef{endmonth}} and%
+ not test {\iffieldundef{endday}}%
+ }{%
+ \setmydatenumber{cv@blx@months@end}{\thefield{endyear}}{\thefield{endmonth}}{\thefield{endday}}%
+ \setmydatenumber{cv@blx@months@start}{\thefield{year}}{\thefield{month}}{\thefield{day}}%
+ \FPsub\cv@blx@months{\thecv@blx@months@end}{\thecv@blx@months@start}%
+ \FPdiv\cv@blx@months{\cv@blx@months}{365.2425}%
+ \FPmul\cv@blx@months{\cv@blx@months}{12}%
+ \FPround\cv@blx@months{\cv@blx@months}{0}%
+ }{%
+ \undef{\cv@blx@months}%
+ }%
+}
+
+% Some of the bibliography drivers require new paragraphs within the bibliography entry. Some styles just use \par without the unspacing and punctuation tracking. In reading.bbx this is accomplished with \def\newblockpunct{\item}.
+\newrobustcmd*{\addpar}{\unspace\blx@postpunct\par\nobreak\blx@imc@resetpunctfont}
+%\newrobustcmd*{\addpar}{\unspace\blx@postpunct\item\blx@imc@resetpunctfont}
+
+% Make the pubstate field controllable with a toggle and include the journal title if present
+\xpatchbibmacro{addendum+pubstate}{%
+ \printfield{pubstate}%
+}{%
+ \iftoggle{cv@blx:pubstate}{%
+ \printfield{pubstate}%
+ \ifentrytype{unpublished}{%
+ \setunit*{\addcolon\addspace}%
+ \printfield{journaltitle}%
+ }{}%
+ }{}%
+}{}{}
+
+% The extradate part of the date label from the authoryear style is not needed in a CV
+\renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}{}{\printtext[parens]{\printdate}}%
+}
+
+% Provide bibliometric information at the end of the reference. All bibliography drivers defined in standard.bbx, except shorthand and set, end with:
+% \newunit\newblock
+% \usebibmacro{addendum+pubstate}%
+% \setunit{\bibpagerefpunct}\newblock
+% \usebibmacro{pageref}%
+% \newunit\newblock
+% \iftoggle{bbx:related}
+% {\usebibmacro{related:init}%
+% \usebibmacro{related}}
+% {}%
+% \usebibmacro{finentry}}
+% In reading.bbx the finentry bibmacro is patched, but it seems better to add the bibliometric information after the addendum+pubstate block and before the pageref and related blocks. The bibliometrics bibmacro also prints the note. For most drivers, the note is printed with \printfield{note}, but with the article driver it is printed with the note+pages bibmacro
+\renewcommand{\cv@blx@do}[1]{%
+ \xpatchbibdriver{#1}{%
+ \setunit{\bibpagerefpunct}\newblock%
+ }{%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ }{}{}%
+}
+\cv@blx@patch@drivers
+
+\renewcommand{\cv@blx@do}[1]{%
+ \xpatchbibdriver{#1}{%
+ \printfield{note}%
+ }{%
+ }{}{}%
+}
+\cv@blx@patch@drivers
+
+\xpatchbibdriver{article}{%
+ \usebibmacro{note+pages}%
+}{%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}%
+ \newunit%
+}{}{}%
+
+% Define new bibmacros
+\newbibmacro{advisor}{%
+ \ifnameundef{advisor}{}{%
+ \ifnumgreater{\value{advisor}}{1}{%
+ \bibstring{advisors}%
+ }{%
+ \bibstring{advisor}%
+ }%
+ \addcolon\addspace%
+ \printnames[given-family]{advisor}%
+ }%
+}
+
+\newbibmacro{bibliometrics}{%
+ \ifboolexpr{%
+ ( test {\iffieldundef{numcites}} or test {\iffieldequalstr{numcites}{0}} ) and%
+ test {\iffieldundef{note}}%
+ }{}{%
+ \printtext[brackets]{%
+ \iffieldundef{numcites}{}{%
+ \iffieldequalstr{numcites}{0}{}{%
+ \bibstring{numCites}\addcolon\addnbspace\printfield{numcites}%
+ }%
+ }%
+ \newunit\setunit{\addcomma\addspace}%
+ \iffieldundef{note}{}{\printfield[sentencecase]{note}}%
+ }%
+ }%
+}
+
+\newbibmacro{class}{%
+ \mkdaterangelong{}%
+ \setunit{\addcomma\addspace}%
+ \printfield{role}%
+ \setunit{\addcomma\addspace}%
+ \iffieldundef{numlectures}{}{%
+ \iffieldequalstr{numlectures}{1}{%
+ \printfield{numlectures}\addnbspace\bibstring{lecture}%
+ }{%
+ \printfield{numlectures}\addnbspace\bibstring{lectures}%
+ }%
+ }%
+ \setunit{\addcomma\addspace}%
+ \iffieldundef{numstudents}{}{\printfield{numstudents}\addnbspace\bibstring{students}}%
+ \setunit{\adddot\addpar}\newblock%
+}
+
+\newbibmacro{classes}{%
+ \iffieldundef{classes}{%
+ \setunit{\adddot\addpar}\newblock%
+ \usebibmacro{class}%
+ }{%
+ \def\do##1{%
+ \entrydata*{##1}{%
+ \setunit{\adddot\addpar}\newblock%
+ \usebibmacro{class}%
+ }%
+ }%
+ \docsvfield{classes}%
+ }%
+}
+
+\newbibmacro{committee}{%
+ \ifnameundef{committee}{}{%
+ \bibstring{committee}\addcolon\addspace%
+ \printnames[given-family]{committee}%
+ }%
+}
+
+\newbibmacro{degrees}{%
+ \def\do##1{%
+ \entrydata*{##1}{%
+ \item\usedriver{}{degree}%
+ }%
+ }%
+ \list{}{\cv@blx@sublist}%
+ \docsvfield{degreelist}%
+ \endlist%
+}
+
+\newbibmacro{degree+major}{%
+ \printfield{degree}%
+ \iftoggle{cv@blx:education:major}{%
+ \ifboolexpr{%
+ test {\iffieldundef{degree}} or%
+ test {\iffieldundef{major}}%
+ }{}{\addspace\bibstring{in}\addspace}%
+ \printfield{major}%
+ }{}%
+}
+
+\newbibmacro{department+institution+location}{%
+ \iffieldundef{saveddepartment}{%
+ \printfield{department}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \iflistundef{savedinstitution}{%
+ \printlist{institution}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \iflistundef{savedlocation}{%
+ \printlist{location}%
+ }{}%
+}
+
+\newbibmacro{duration}{%
+ \ifundef{\cv@blx@months}{}{%
+ \printtext{\cv@blx@months\addnbspace}%
+ \ifnumgreater{\cv@blx@months}{1}{%
+ \bibstring{months}%
+ }{%
+ \bibstring{month}%
+ }%
+ }%
+}
+
+\newbibmacro{duration+amount+status}{%
+ \cv@blx@calculate@months%
+ \ifboolexpr{
+ test {\iffieldundef{amount}} and
+ test {\ifundef{\cv@blx@months}} and
+ (
+ test {\iffieldundef{status}} or
+ not test {\iftoggle{cv@blx:funding:status}} or
+ ) and
+ (
+ test {\iffieldundef{role}} or
+ not test {\iftoggle{cv@blx:funding:role}} or
+ (
+ test {\iftoggle{cv@blx:funding:hidePI}} and
+ test {\iffieldequalstr{role}{PI}}
+ )
+ )
+ }{}{%
+ \printtext[parens]{%
+ \usebibmacro{duration}%
+ \setunit{\addcomma\addspace}%
+ \printfield{amount}%
+ \setunit{\addcomma\addspace}%
+ \iftoggle{cv@blx:funding:status}{%
+ \printfield{status}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \iftoggle{cv@blx:funding:role}{%
+ \iftoggle{cv@blx:funding:hidePI}{%
+ \iffieldequalstr{role}{PI}{\printfield{role}}{}%
+ }{%
+ \printfield{role}%
+ }%
+ }{}%
+ }%
+ }%
+}
+
+\newbibmacro{role}{%
+ \iffieldundef{role}{}{%
+ \printtext[brackets]{%
+ \printfield{role}%
+ }%
+ }%
+}
+
+% There is some sort of bug with the loop and the seasons not getting updated correctly
+\newbibmacro{semesters}{%
+ \iffieldundef{semesters}{%
+ \mkdaterangelong{}%
+ \setunit{\addspace}%
+ \iffieldundef{role}{}{\printtext[brackets]{\printfield{role}}}%
+ \setunit{\addcomma\addspace}%
+ }{%
+ \def\do##1{%
+ \entrydata*{##1}{%
+ \mkdaterangelong{}%
+ \setunit{\addspace}%
+ \iffieldundef{role}{}{%
+ \printtext[brackets]{\printfield{role}}%
+ }%
+ \setunit{\addcomma\addspace}%
+ }%
+ }%
+ \docsvfield{semesters}%
+ }%
+}
+
+\newbibmacro{type+presenter}{%
+ \ifboolexpr{
+ (
+ test {\iftoggle{cv@blx:presentation:type}} and
+ (
+ test {\iffieldequalstr{presentationtype}{keynote}} or
+ test {\iffieldequalstr{presentationtype}{invited}}
+ )
+ ) or (
+ test {\iftoggle{cv@blx:presentation:subtype}} and
+ not test {\iffieldundef{entrysubtype}}
+ ) or (
+ not test {\ifnameundef{presenter}}
+ )
+ }{%
+ \printtext[brackets]{%
+ \ifboolexpr{
+ test {\iftoggle{cv@blx:presentation:type}} and
+ (
+ test {\iffieldequalstr{presentationtype}{keynote}} or
+ test {\iffieldequalstr{presentationtype}{invited}}
+ )
+ }{%
+ \printfield[key]{presentationtype}%
+ \setunit{\addspace}%
+ }{}%
+ \iftoggle{cv@blx:presentation:subtype}{%
+ \printfield[key]{entrysubtype}%
+ \setunit{\addspace}%
+ }{}%
+ \ifnameundef{presenter}{}{%
+ \bibstring{presented}\addspace%
+ \printnames{presenter}%
+ }%
+ }%
+ }{}%
+}
+
+\newbibmacro{yearrange}{%
+ \printfield{year}%
+ \ifboolexpr{%
+ test {\iffieldundef{endyear}} or%
+ test {\iffieldsequal{year}{endyear}}%
+ }{}{\bibrangedash\printfield{endyear}}%
+}
+
+\newbibmacro{yearrange+dash}{%
+ \printfield{year}%
+ \iffieldundef{endyear}{%
+ \bibrangedash%
+ }{%
+ \iffieldsequal{year}{endyear}{}{\bibrangedash\printfield{endyear}}%
+ }%
+}
+
+% The biblatex-cv style allows for custom entry types that do not have bibliography drivers defined in standard.bbx.
+
+% ABSTRACT
+% The abstract bibliography driver is a modified version of the article bibliography driver.
+\csletcs{blx@bbx@abstract}{blx@bbx@article}
+\DeclareFieldFormat[abstract]{citetitle}{\mkbibquote{#1\isdot}}
+\DeclareFieldFormat[abstract]{number}{#1}
+\DeclareFieldFormat[abstract]{series}{%
+ \ifinteger{#1}{%
+ \mkbibordseries{#1}~\bibstring{jourser}%
+ }{%
+ \ifbibstring{#1}{\bibstring{#1}}{#1}%
+ }%
+}
+\DeclareFieldFormat[abstract]{title}{\mkbibquote{#1\isdot}}
+\DeclareFieldFormat[abstract]{volume}{#1}
+\xpatchbibdriver{abstract}{\usebibmacro{doi+eprint+url}}{%
+ \usebibmacro{type+presenter}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+}{}{}
+
+% COMMITTEE
+\DeclareBibliographyDriver{committee}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{semesters}%
+ \printfield{title}%
+ \setunit{\addcomma\addspace}%
+ \usebibmacro{department+institution+location}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \iftoggle{bbx:related}{%
+ \usebibmacro{related:init}%
+ \usebibmacro{related}%
+ }{}%
+ \usebibmacro{finentry}%
+}
+
+% EDUCATION
+\DeclareBibliographyDriver{school}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{department+institution+location}%
+ \setunit{\addcomma\addspace}%
+ \iftoggle{cv@blx:school:years}{%
+ \usebibmacro{yearrange}%
+ }{}%
+ \newblockpunct{\addperiod\addpar}%
+ \iftoggle{cv@blx:education:gpa}{%
+ \iffieldundef{gpa}{}{%
+ \printfield{gpa}%
+ \newblockpunct{\addpar}%
+ }%
+ }{}%
+ \iftoggle{cv@blx:education:honors}{%
+ \iflistundef{honors}{}{%
+ \bibstring{honors}\addcolon\addspace%
+ \printlist{honors}%
+ }
+ \newblockpunct{\addpar}%
+ }{}%
+ \usebibmacro{degrees}%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \iftoggle{bbx:related}{%
+ \usebibmacro{related:init}%
+ \usebibmacro{related}%
+ }{}%
+ \begingroup%
+ \renewcommand{\finentrypunct}{}%
+ \usebibmacro{finentry}%
+ \endgroup%
+}
+
+\DeclareBibliographyDriver{degree}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{degree+major}%
+ \setunit{\addcomma\addspace}%
+ \usebibmacro{department+institution+location}%
+ \setunit{\addcomma\addspace}%
+ \usebibmacro{yearrange}%
+ \newblockpunct{\addperiod\addpar}%
+ \iftoggle{cv@blx:education:title}{%
+ \printfield{title}%
+ \newblockpunct{\addpar}%
+ }{}%
+ \iftoggle{cv@blx:education:advisor}{%
+ \usebibmacro{advisor}%
+ \newblockpunct{\addpar}%
+ }{}%
+ \iftoggle{cv@blx:education:committee}{%
+ \usebibmacro{committee}%
+ \newblockpunct{\addpar}%
+ }{}%
+ \iftoggle{cv@blx:education:minor}{%
+ \iflistundef{minor}{}{%
+ \bibstring{minor}\addcolon\addspace%
+ \printlist{minor}%
+ }%
+ \newblockpunct{\addpar}%
+ \iflistundef{concentration}{}{%
+ \bibstring{concentration}\addcolon\addspace%
+ \printlist{concentration}%
+ }%
+ \newblockpunct{\addpar}%
+ }{}%
+ \iftoggle{cv@blx:education:gpa}{%
+ \printfield{gpa}%
+ \newblockpunct{\addpar}%
+ }{}%
+ \iftoggle{cv@blx:education:honors}{%
+ \iflistundef{honors}{}{%
+ \printlist{honors}%
+ }
+ \newblockpunct{\addpar}%
+ }{}%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \iftoggle{bbx:related}{%
+ \usebibmacro{related:init}%
+ \usebibmacro{related}%
+ }{}%
+ \begingroup%
+ \renewcommand{\finentrypunct}{}%
+ \usebibmacro{finentry}%
+ \endgroup%
+}
+
+% FUNDING
+\DeclareBibliographyDriver{funding}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{yearrange}%
+ \setunit{\addspace}%
+ \usebibmacro{duration+amount+status}%
+ \setunit{\addcolon\addspace}%
+ \printfield{funder}%
+ \setunit{\addcomma\addspace}%
+ \printfield{type}%
+ \setunit{\addspace}%
+ \printfield[parens]{number}%
+ \newunit\newblock%
+ \usebibmacro{title}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \iftoggle{bbx:related}{%
+ \usebibmacro{related:init}%
+ \usebibmacro{related}%
+ }{}%
+ \usebibmacro{finentry}%
+}
+
+% PRESENTATION
+\DeclareBibliographyDriver{presentation}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\printdelim{nametitledelim}}\newblock%
+ \usebibmacro{title}%
+ \setunit*{\adddot\addspace}%
+ \usebibmacro{department+institution+location}%
+ \newunit\newblock%
+ \usebibmacro{type+presenter}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \iftoggle{bbx:related}{%
+ \usebibmacro{related:init}%
+ \usebibmacro{related}%
+ }{}%
+ \usebibmacro{finentry}%
+}
+
+% STUDENT
+\DeclareBibliographyDriver{student}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printnames{name}%
+ \setunit{\addcomma\addspace}%
+ \iftoggle{cv@blx:student:type}{%
+ \printfield{entrysubtype}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \usebibmacro{yearrange}%
+ \setunit{\addcomma\addspace}%
+ \iftoggle{cv@blx:student:department}{%
+ \printfield{department}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \iftoggle{cv@blx:student:institution}{%
+ \printlist{institution}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \iftoggle{cv@blx:student:location}{%
+ \printlist{location}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \newunit\newblock%
+ \usebibmacro{role}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \iftoggle{bbx:related}{%
+ \usebibmacro{related:init}%
+ \usebibmacro{related}%
+ }{}%
+ \usebibmacro{finentry}%
+}
+
+% TEACHING
+\DeclareBibliographyDriver{teaching}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printfield{title}%
+ \setunit{\addspace}%
+ \printfield[parens]{number}%
+ \setunit{\addcomma\addspace}%
+ \iftoggle{cv@blx:teaching:department}{%
+ \printfield{department}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \iftoggle{cv@blx:teaching:institution}{%
+ \printlist{institution}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \iftoggle{cv@blx:teaching:location}{%
+ \printlist{location}%
+ \setunit{\addcomma\addspace}%
+ }{}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock%
+ \usebibmacro{bibliometrics}%
+ \setunit{\bibpagerefpunct}\newblock%
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \iftoggle{cv@blx:verbose:teaching}{%
+ \usebibmacro{classes}%
+ }{%
+ \setunit{\adddot\addspace}\newblock%
+ \usebibmacro{class}%
+ }%
+ \iftoggle{bbx:related}{%
+ \usebibmacro{related:init}%
+ \usebibmacro{related}%
+ }{}%
+ \usebibmacro{finentry}%
+}
+
+% Define new field formats
+
+% Allow key datatypes to access localization strings
+\DeclareFieldFormat{key}{\ifbibstring{#1}{\bibstring{#1}}{#1}}
+\DeclareFieldFormat{role}{\ifbibstring{#1}{\bibstring{#1}}{#1}}
+\DeclareFieldFormat{status}{\ifbibstring{#1}{\bibstring{#1}}{#1}}
+
+\DeclareFieldFormat[committee]{title}{#1}
+
+\DeclareFieldFormat[degree]{degree}{#1\isdot}
+\DeclareFieldFormat[degree]{title}{\bibstring{title}\addcolon\addspace#1}
+\DeclareFieldFormat[school, degree]{gpa}{\bibstring{gpa}\addcolon\addspace#1}
+
+\DeclareFieldFormat[funding]{amount}{\printfield{currency}#1}
+
+\DeclareFieldFormat[teaching]{title}{#1}
+
+\DeclareFieldFormat[student]{entrysubtype}{\ifbibstring{#1}{\bibstring{#1}}{#1}}
+
+\DeclareFieldFormat[course]{related}{\mkbibparens{#1}}
+
+% The date label from the authoryear style includes "no date" which is not needed in a CV
+\DeclareLabeldate{%
+ \field{date}
+ \field{year}
+ \field{eventdate}
+ \field{origdate}
+ \field{urldate}
+}
+
+% Redefine ydnt sorting to sort by endyear. Taken from biblatex.def
+\DeclareSortingTemplate{ydnt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort[final, direction=descending]{
+ \field{sortyear}
+ \field[padwidth = 4, padchar = 9]{endyear}
+ }
+ \sort[direction=descending]{
+ \field{sortyear}
+ \field{year}
+ \literal{9999}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+}
diff --git a/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.cbx b/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.cbx
new file mode 100644
index 00000000000..80cff4e9ff8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.cbx
@@ -0,0 +1,3 @@
+\ProvidesFile{biblatex-cv.cbx}[2020/03/11 v0.01 biblatex-cv citation style (DES)]
+
+\RequireCitationStyle{authoryear}
diff --git a/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.dbx b/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.dbx
new file mode 100644
index 00000000000..745ab411bc9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/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
diff --git a/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.sty b/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.sty
new file mode 100644
index 00000000000..834d7724aaf
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-cv/biblatex-cv.sty
@@ -0,0 +1,776 @@
+% Copyright (c) 2020- Daniel E. Shub.
+%
+% Permission is granted to copy, distribute and/or modify this software under the terms of the LaTeX Project Public License (LPPL), version 1.3c.
+%
+% This software is provided 'as is', without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
+
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{biblatex-cv}[2020/03/11 v0.01 biblatex-cv bibliography style (DES)]
+
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{biblatex}}
+\ProcessOptions\relax
+
+\PassOptionsToPackage{
+ labelnumber = true, defernumbers = true, backend = biber,
+ style = biblatex-cv, sorting = ydnt, maxnames = 999
+}{biblatex}
+\RequirePackage{biblatex}
+
+\RequirePackage{expl3, xparse}
+\RequirePackage{totcount}
+\RequirePackage{xpatch}
+
+% Document layout
+\setlength{\biblabelsep}{0.5em}
+\defbibheading{bibliography}{}
+
+\toggletrue{cv@blx:delete:author}
+\toggletrue{cv@blx:delete:presenter}
+
+\toggletrue{cv@blx:pubstate}
+
+\togglefalse{cv@blx:funding:hidePI}
+\toggletrue{cv@blx:funding:role}
+\toggletrue{cv@blx:funding:status}
+\toggletrue{cv@blx:presentation:subtype}
+\toggletrue{cv@blx:presentation:type}
+\toggletrue{cv@blx:student:institution}
+\toggletrue{cv@blx:student:location}
+\toggletrue{cv@blx:student:department}
+\toggletrue{cv@blx:student:type}
+\toggletrue{cv@blx:school:years}
+\toggletrue{cv@blx:teaching:institution}
+\toggletrue{cv@blx:teaching:location}
+\toggletrue{cv@blx:teaching:department}
+
+% Bibfilters
+
+% ABSTRACT
+\defbibcheck{Abstract}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+}
+\defbibcheck{Abstract:Contributed}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{contributed}{}{\skipentry}%
+}
+\defbibcheck{Abstract:Invited}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{invited}{}{\skipentry}%
+}
+\defbibcheck{Abstract:Keynote}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{keynote}{}{\skipentry}
+}
+\defbibcheck{Abstract:NotInternalOrJob}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{\skipentry}{%
+ \iffieldequalstr{presentationtype}{job}{\skipentry}{}%
+ }%
+}
+
+\defbibcheck{Abstract:PosterContributed}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{contributed}{}{\skipentry}%
+}
+\defbibcheck{Abstract:PosterInvited}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{invited}{}{\skipentry}%
+}
+\defbibcheck{Abstract:PosterKeynote}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{keynote}{}{\skipentry}
+}
+\defbibcheck{Abstract:PosterNotInternalOrJob}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{\skipentry}{%
+ \iffieldequalstr{presentationtype}{job}{\skipentry}{}%
+ }%
+}
+
+\defbibcheck{Abstract:TalkContributed}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{contributed}{}{\skipentry}%
+}
+\defbibcheck{Abstract:TalkInvited}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{invited}{}{\skipentry}%
+}
+\defbibcheck{Abstract:TalkKeynote}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{keynote}{}{\skipentry}
+}
+\defbibcheck{Abstract:TalkNotInternalOrJob}{%
+ \ifentrytype{abstract}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{\skipentry}{%
+ \iffieldequalstr{presentationtype}{job}{\skipentry}{}%
+ }%
+}
+
+% COMMITTEE
+\defbibcheck{Committee}{%
+ \ifentrytype{committee}{}{\skipentry}%
+}
+\defbibcheck{Committee:External}{%
+ \ifentrytype{committee}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{external}{}{\skipentry}%
+}
+\defbibcheck{Committee:Departmental}{%
+ \ifentrytype{committee}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{departmental}{}{\skipentry}%
+}
+\defbibcheck{Committee:Institutional}{%
+ \ifentrytype{committee}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+}
+\defbibcheck{Committee:NotExternal}{%
+ \ifentrytype{committee}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{external}{\skipentry}{}%
+}
+
+% EDUCATION
+\defbibcheck{Education}{%
+ \ifentrytype{school}{}{%
+ \ifentrytype{degree}{}{\skipentry}%
+ }%
+}
+
+% FUNDING
+\defbibcheck{Funding}{%
+ \ifentrytype{funding}{}{\skipentry}%
+}
+\defbibcheck{Funding:Completed}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{status}{completed}{}{\skipentry}%
+}
+\defbibcheck{Funding:Ongoing}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{status}{ongoing}{}{\skipentry}%
+}
+\defbibcheck{Funding:Pending}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{status}{pending}{}{\skipentry}%
+}
+\defbibcheck{Funding:Submitted}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{status}{submitted}{}{\skipentry}%
+}
+\defbibcheck{Funding:Unsuccessful}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{status}{unsuccessful}{}{\skipentry}%
+}
+\defbibcheck{Funding:CurrentAndPending}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{status}{ongoing}{}{%
+ \iffieldequalstr{status}{pending}{}{%
+ \iffieldequalstr{status}{submitted}{}{\skipentry}%
+ }%
+ }%
+}
+\defbibcheck{Funding:NotUnsuccessful}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{status}{unsuccessful}{\skipentry}{}%
+}
+
+\defbibcheck{Funding:Individual}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+}
+\defbibcheck{Funding:IndividualCompleted}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+ \iffieldequalstr{status}{completed}{}{\skipentry}%
+}
+\defbibcheck{Funding:IndividualOngoing}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+ \iffieldequalstr{status}{ongoing}{}{\skipentry}%
+}
+\defbibcheck{Funding:IndividualPending}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+ \iffieldequalstr{status}{pending}{}{\skipentry}%
+}
+\defbibcheck{Funding:IndividualSubmitted}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+ \iffieldequalstr{status}{submitted}{}{\skipentry}%
+}
+\defbibcheck{Funding:IndividualUnsuccessful}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+ \iffieldequalstr{status}{unsuccessful}{}{\skipentry}%
+}
+\defbibcheck{Funding:IndividualCurrentAndPending}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+ \iffieldequalstr{status}{ongoing}{}{%
+ \iffieldequalstr{status}{pending}{}{%
+ \iffieldequalstr{status}{submitted}{}{\skipentry}%
+ }%
+ }%
+}
+\defbibcheck{Funding:IndividualNotUnsuccessful}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{individual}{}{\skipentry}%
+ \iffieldequalstr{status}{unsuccessful}{\skipentry}{}%
+}
+
+\defbibcheck{Funding:Institutional}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+}
+\defbibcheck{Funding:InstitutionalCompleted}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+ \iffieldequalstr{status}{completed}{}{\skipentry}%
+}
+\defbibcheck{Funding:InstitutionalOngoing}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+ \iffieldequalstr{status}{ongoing}{}{\skipentry}%
+}
+\defbibcheck{Funding:InstitutionalPending}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+ \iffieldequalstr{status}{pending}{}{\skipentry}%
+}
+\defbibcheck{Funding:InstitutionalSubmitted}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+ \iffieldequalstr{status}{submitted}{}{\skipentry}%
+}
+\defbibcheck{Funding:InstitutionalUnsuccessful}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+ \iffieldequalstr{status}{unsuccessful}{}{\skipentry}%
+}
+\defbibcheck{Funding:InstitutionalCurrentAndPending}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+ \iffieldequalstr{status}{ongoing}{}{%
+ \iffieldequalstr{status}{pending}{}{%
+ \iffieldequalstr{status}{submitted}{}{\skipentry}%
+ }%
+ }%
+}
+\defbibcheck{Funding:InstitutionalNotUnsuccessful}{%
+ \ifentrytype{funding}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{institutional}{}{\skipentry}%
+ \iffieldequalstr{status}{unsuccessful}{\skipentry}{}%
+}
+
+% PRESENTATION
+\defbibcheck{Presentation}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+}
+\defbibcheck{Presentation:Contributed}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{contributed}{}{\skipentry}%
+}
+\defbibcheck{Presentation:Internal}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{}{\skipentry}%
+}
+\defbibcheck{Presentation:Invited}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{invited}{}{\skipentry}%
+}
+\defbibcheck{Presentation:Job}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{job}{}{\skipentry}%
+}
+\defbibcheck{Presentation:Keynote}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{keynote}{}{\skipentry}
+}
+\defbibcheck{Presentation:NotInternalOrJob}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{\skipentry}{%
+ \iffieldequalstr{presentationtype}{job}{\skipentry}{}%
+ }%
+}
+
+\defbibcheck{Presentation:Poster}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+}
+\defbibcheck{Presentation:PosterContributed}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{contributed}{}{\skipentry}%
+}
+\defbibcheck{Presentation:PosterInternal}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{}{\skipentry}%
+}
+\defbibcheck{Presentation:PosterInvited}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{invited}{}{\skipentry}%
+}
+\defbibcheck{Presentation:PosterJob}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{job}{}{\skipentry}%
+}
+\defbibcheck{Presentation:PosterKeynote}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{keynote}{}{\skipentry}
+}
+\defbibcheck{Presentation:PosterNotInternalOrJob}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{poster}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{\skipentry}{%
+ \iffieldequalstr{presentationtype}{job}{\skipentry}{}%
+ }%
+}
+
+\defbibcheck{Presentation:Talk}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+}
+\defbibcheck{Presentation:TalkContributed}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{contributed}{}{\skipentry}%
+}
+\defbibcheck{Presentation:TalkInternal}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{}{\skipentry}%
+}
+\defbibcheck{Presentation:TalkInvited}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{invited}{}{\skipentry}%
+}
+\defbibcheck{Presentation:TalkJob}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{job}{}{\skipentry}%
+}
+\defbibcheck{Presentation:TalkKeynote}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{keynote}{}{\skipentry}
+}
+\defbibcheck{Presentation:TalkNotInternalOrJob}{%
+ \ifentrytype{presentation}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{talk}{}{\skipentry}%
+ \iffieldequalstr{presentationtype}{internal}{\skipentry}{%
+ \iffieldequalstr{presentationtype}{job}{\skipentry}{}%
+ }%
+}
+
+% STUDENT
+\defbibcheck{Student}{%
+ \ifentrytype{student}{}{\skipentry}%
+}
+\defbibcheck{Student:Masters}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{masters}{}{\skipentry}%
+}
+\defbibcheck{Student:Phd}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{phd}{}{\skipentry}%
+}
+\defbibcheck{Student:Postdoc}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{postdoc}{}{\skipentry}%
+}
+\defbibcheck{Student:Undergraduate}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{}{\skipentry}%
+}
+\defbibcheck{Student:NotUndergraduate}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{\skipentry}{}%
+}
+\defbibcheck{Student:Externalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{role}{externalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:Internalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:Secondsupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{role}{secondsupervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:Supervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{role}{supervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:NotExaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{\skipentry}{}%
+ \iffieldequalstr{role}{externalexaminer}{\skipentry}{}%
+}
+\defbibcheck{Student:MastersExternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{masters}{}{\skipentry}%
+ \iffieldequalstr{role}{externalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:MastersInternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{masters}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:MastersSecondsupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{masters}{}{\skipentry}%
+ \iffieldequalstr{role}{secondsupervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:MastersSupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{masters}{}{\skipentry}%
+ \iffieldequalstr{role}{supervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:MastersNotExaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{masters}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{\skipentry}{}%
+ \iffieldequalstr{role}{externalexaminer}{\skipentry}{}%
+}
+\defbibcheck{Student:PhdExternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{phd}{}{\skipentry}%
+ \iffieldequalstr{role}{externalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:PhdInternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{phd}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:PhdSecondsupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{phd}{}{\skipentry}%
+ \iffieldequalstr{role}{secondsupervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:PhdSupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{phd}{}{\skipentry}%
+ \iffieldequalstr{role}{supervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:PhdNotExaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{phd}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{\skipentry}{}%
+ \iffieldequalstr{role}{externalexaminer}{\skipentry}{}%
+}
+\defbibcheck{Student:PostdocExternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{postdoc}{}{\skipentry}%
+ \iffieldequalstr{role}{externalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:PostdocInternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{postdoc}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:PostdocSecondsupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{postdoc}{}{\skipentry}%
+ \iffieldequalstr{role}{secondsupervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:PostdocSupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{postdoc}{}{\skipentry}%
+ \iffieldequalstr{role}{supervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:PostdocNotExaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{postdoc}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{\skipentry}{}%
+ \iffieldequalstr{role}{externalexaminer}{\skipentry}{}%
+}
+\defbibcheck{Student:UndergraduateExternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{}{\skipentry}%
+ \iffieldequalstr{role}{externalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:UndergraduateInternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:UndergraduateSecondsupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{}{\skipentry}%
+ \iffieldequalstr{role}{secondsupervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:UndergraduateSupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{}{\skipentry}%
+ \iffieldequalstr{role}{supervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:UndergraduateNotExaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{}{\skipentry}%
+ \iffieldequalstr{role}{internalexaminer}{\skipentry}{}%
+ \iffieldequalstr{role}{externalexaminer}{\skipentry}{}%
+}
+\defbibcheck{Student:NotUndergraduateExternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{\skipentry}{}%
+ \iffieldequalstr{role}{externalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:NotUndergraduateInternalexaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{\skipentry}{}%
+ \iffieldequalstr{role}{internalexaminer}{}{\skipentry}%
+}
+\defbibcheck{Student:NotUndergraduateSecondsupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{\skipentry}{}%
+ \iffieldequalstr{role}{secondsupervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:NotUndergraduateSupervisor}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{\skipentry}{}%
+ \iffieldequalstr{role}{supervisor}{}{\skipentry}%
+}
+\defbibcheck{Student:NotUndergraduateNotExaminer}{%
+ \ifentrytype{student}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{\skipentry}{}%
+ \iffieldequalstr{role}{internalexaminer}{\skipentry}{}%
+ \iffieldequalstr{role}{externalexaminer}{\skipentry}{}%
+}
+
+% TEACHING
+\defbibcheck{Teaching}{%
+ \ifentrytype{teaching}{}{\skipentry}%
+}
+\defbibcheck{Teaching:Graduate}{%
+ \ifentrytype{teaching}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{graduate}{}{\skipentry}%
+}
+\defbibcheck{Teaching:Undergraduate}{%
+ \ifentrytype{teaching}{}{\skipentry}%
+ \iffieldequalstr{entrysubtype}{undergraduate}{}{\skipentry}%
+}
+
+% Create a biblatex/biber MD5 hash from the parts of a name and store the hashes so that the name can be emphasized and/or deleted throughout the CV. If seems like \zap@space and ExplSyntax do not play nice together. There is probably a much cleaner way of doing this. Basically, the \highlightname macro concatenates the name parts, strips any spaces, calculates the hash, and then converts the hash to all lower case letters. The code does not handle periods in the name the same way that biblatex/biber does and therefore the input to \highlightname should probably not have periods.
+\newcommand{\highlightname}[4]{% family, given, prefix, suffix
+ \edef\cv@blx@highlightname@hash{\zap@space #1#2#3#4 \@empty}%
+ \ifxetex%
+ \expandafter\edef\expandafter\cv@blx@highlightname@hash\expandafter{%
+ \expandafter\mdfivesum\expandafter{%
+ \cv@blx@highlightname@hash%
+ }%
+ }%
+ \else%
+ \expandafter\edef\expandafter\cv@blx@highlightname@hash\expandafter{%
+ \expandafter\pdfmdfivesum\expandafter{%
+ \cv@blx@highlightname@hash%
+ }%
+ }%
+ \fi%
+ \cv@blx@highlightname%
+}
+
+\ExplSyntaxOn
+ \newcommand{\cv@blx@highlightname}{%
+ \edef\cv@blx@highlightname@hash{%
+ \text_lowercase:n{\cv@blx@highlightname@hash}%
+ }%
+ \listxadd{\cv@blx@highlightname@hash@list}{%
+ \cv@blx@highlightname@hash%
+ }%
+ }
+\ExplSyntaxOff
+
+% Emphasized a name throughout the CV. We patch the name formats and not the underlying bib macros, since this allows us to compare the name hash instead of the name parts. This seems more robust to things like initials and different name ordering schemes
+\newcommand{\cv@blx@highlightname@format}{\textbf}
+\newcommand{\cv@blx@highlightname@patch}{%
+ \begingroup% Needs to be ended by an \xapptonameformat
+ \xifinlist{\thefield{hash}}{\cv@blx@highlightname@hash@list}{%
+ \let\mkbibnamegiven=\cv@blx@highlightname@format%
+ \let\mkbibnamefamily=\cv@blx@highlightname@format%
+ \let\mkbibnameprefix=\cv@blx@highlightname@format%
+ \let\mkbibnamesuffix=\cv@blx@highlightname@format%
+ }{}%
+}
+\xpretonameformat{given-family}{\cv@blx@highlightname@patch}{}{}
+\xapptonameformat{given-family}{\endgroup}{}{}
+\xpretonameformat{family-given}{\cv@blx@highlightname@patch}{}{}
+\xapptonameformat{family-given}{\endgroup}{}{}
+\xpretonameformat{family-given/given-family}{\cv@blx@highlightname@patch}{}{}
+\xapptonameformat{family-given/given-family}{\endgroup}{}{}
+\xpretonameformat{initsonly}{\cv@blx@highlightname@patch}{}{}
+\xapptonameformat{initsonly}{\endgroup}{}{}
+
+% Delete a name from a list of names. Unlike the emphasizing the name, the deletion is done on a per type (i.e., author, editor, presenter) basis.
+\newcommand{\cv@blx@deletename}[1]{%
+ \expandafter\forlistloop\expandafter{\expandafter\cv@blx@deletename@do\expandafter{\NewValue}{#1}}{\cv@blx@highlightname@hash@list}%
+}
+\ExplSyntaxOn
+ \NewDocumentCommand{\cv@blx@deletename@do}{mmm}{% Name information, Type, Hash
+ \tl_set:Nn\l_tmpa_tl{#1}%
+ \str_if_in:nnTF{#1}{hash=#3}{%
+ \numdef\NewCount{\NewCount-1}%
+ \regex_replace_all:nnN{\cB\{\cB\{.*?hash=#3.*?\cE\}\cE\}\cE\}}{}\l_tmpa_tl%
+ \regex_replace_all:nnN{\cB\{\cB\{.*?hash=#3.*?\cE\}.*?givenun=0.*?\cE\}\cE\}}{}\l_tmpa_tl%
+ \edef\NewValue{\l_tmpa_tl}%
+ \blx@bbl@addfield{#2deleted}{1}%
+ }{}%
+ }
+\ExplSyntaxOff
+
+\newbibmacro{nameDeleted}{%
+ \iffieldequalstr{\currentname deleted}{1}{%
+ \bibstring{with}\addspace%
+ }{%
+ \bibstring{by}\addspace%
+ }%
+}
+\renewcommand{\cv@blx@tempa}[1]{%
+ \DeclareNameInputHandler{#1}{%
+ \iftoggle{cv@blx:delete:#1}{\cv@blx@deletename{#1}}{}%
+ }%
+ \DeclareNameWrapperFormat{#1}{%
+ \iftoggle{cv@blx:delete:#1}{\usebibmacro{nameDeleted}}{}%
+ ##1%
+ }%
+}
+\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%
+}
+
+% Some sections of a CV should have numbered items and some should not. We need to define unnumbered and numbered (with descending labels) bibliography environments. In order for this to work, we need to create a new totcounter every time a new bibliography is started. I think this breaks if there is more than one refsection in the CV, but I am not sure why there would be more than one refsection in a CV.
+\newcounter{cv@blx@bib}
+\newtotcounter{cv@blx@ref@0}
+\xpatchcmd{\printbibliography}{\begingroup}{%
+ \stepcounter{cv@blx@bib}%
+ \edef\@tempa{cv@blx@ref@\arabic{cv@blx@bib}}%
+ \expandafter\newtotcounter\expandafter{\@tempa}%
+ \begingroup
+}{}{}
+
+\newrobustcmd{\mkbibdown}[1]{%
+ \stepcounter{cv@blx@ref@\arabic{cv@blx@bib}}%
+ \begingroup%
+ \edef\@tempa{cv@blx@ref@\arabic{cv@blx@bib}}%
+ \number\numexpr%
+ \expandafter\totvalue\expandafter{\@tempa}+1-#1%
+ \relax%
+ \endgroup%
+}
+
+\DeclareFieldFormat{labelnumber}{\mkbibdown{#1}}
+\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}
+
+\newcommand{\cv@blx@list}{%
+ \setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \addtolength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\bibhang}%
+}
+
+\newcommand{\cv@blx@sublist}{%
+ \setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \addtolength{\leftmargin}{2\bibhang}%
+ \setlength{\itemindent}{-\bibhang}%
+}
+
+\defbibenvironment{numbered}{%
+ \list{%
+ \printtext[labelnumberwidth]{%
+ \printfield{prefixnumber}%
+ \printfield{labelnumber}%
+ }%
+ }{\cv@blx@list}%
+ \renewcommand*{\makelabel}[1]{\hss##1}%
+}{\endlist}{\item}
+
+\defbibenvironment{unnumbered}{%
+ \list{}{\cv@blx@list}%
+ \renewcommand*{\makelabel}[1]{\hss##1}%
+}{\endlist}{\item}
+
+% Data inheritances need to be defined for the related types
+\DeclareDataInheritance{committee}{committee}{
+ \inherit{entrysubtype}{entrysubtype}
+ \noinherit{semesters}
+}
+
+\DeclareDataInheritance{school}{degree}{
+ \noinherit{degreelist}
+ \noinherit{gpa}
+}
+
+\DeclareDataInheritance{teaching}{teaching}{
+ \inherit{entrysubtype}{entrysubtype}
+}
+
+% Deal with the verbose style options
+\iftoggle{cv@blx:verbose:committee}{
+ \DeclareStyleSourcemap{
+ \maps[datatype = bibtex]{
+ \map[overwrite]{
+ \pertype{committee}
+ \step[fieldsource = semesters, fieldset = options,
+ fieldvalue = {skipbib = true}]
+ }
+ }
+ }
+}{
+ \DeclareStyleSourcemap{
+ \maps[datatype = bibtex]{
+ \map[overwrite]{
+ \pertype{committee}
+ \step[fieldsource = crossref, fieldset = options,
+ fieldvalue = {skipbib = true}]
+ }
+ }
+ }
+}
+
+\DeclareStyleSourcemap{
+ \maps[datatype = bibtex]{
+ \map[overwrite]{
+ \pertype{teaching}
+ \step[fieldsource = crossref, fieldset = options,
+ fieldvalue = {skipbib = true}]
+ }
+ }
+ \maps[datatype = bibtex]{
+ \map[overwrite]{
+ \pertype{degree}
+ \step[fieldsource = crossref, fieldset = options,
+ fieldvalue = {skipbib = true}]
+ }
+ }
+}
+
+\iftoggle{cv@blx:verbose:education}{
+ \toggletrue{cv@blx:education:advisor}
+ \toggletrue{cv@blx:education:committee}
+ \toggletrue{cv@blx:education:gpa}
+ \toggletrue{cv@blx:education:honors}
+ \toggletrue{cv@blx:education:major}
+ \toggletrue{cv@blx:education:minor}
+ \toggletrue{cv@blx:education:title}
+}{}