diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/blx-dm.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex/blx-dm.def | 60 |
1 files changed, 47 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/blx-dm.def b/Master/texmf-dist/tex/latex/biblatex/blx-dm.def index c275d1e57ff..5646a3f55e6 100644 --- a/Master/texmf-dist/tex/latex/biblatex/blx-dm.def +++ b/Master/texmf-dist/tex/latex/biblatex/blx-dm.def @@ -1,6 +1,7 @@ % -*- mode: LaTeX -*- \newbool{dmskipout}% +\newbool{dmlabelfield}% % Data model .bcf output macros \xdef\blx@xml@datamodel#1{% @@ -64,6 +65,7 @@ \global\cslet{blx@biber@datamodel@entrytypes}\@empty} \newrobustcmd*{\ResetDatamodelFields}{% + \global\cslet{blx@biber@datamodel@labelfields}\@empty \global\cslet{blx@bcf@datamodel@fields}\@empty \global\cslet{blx@biber@datamodel@fields}\@empty \global\cslet{blx@biber@datamodel@names}\@empty @@ -101,9 +103,18 @@ \let\blx@dm@datatype\@empty \let\blx@dm@format\@empty \boolfalse{dmskipout}% + \boolfalse{dmlabelfield}% \let\blx@tempa\@empty \setkeys{blx@datamodel@field}{#1}% \def\do##1{% + \ifboolexpr{% add to list of label fields + not bool {dmskipout} + and + bool {dmlabelfield} + and + not test {\ifinlistcs{##1}{blx@biber@datamodel@labelfields}}} + {\listcsgadd{blx@biber@datamodel@labelfields}{##1}} + {}% \ifboolexpr{% add to list of names if it is a name which appears in .bbl not bool {dmskipout} and @@ -119,6 +130,10 @@ ( test {\ifcsstring{blx@dm@datatype}{literal}} or test {\ifcsstring{blx@dm@datatype}{key}} + or + test {\ifcsstring{blx@dm@datatype}{uri}} + or + test {\ifcsstring{blx@dm@datatype}{verbatim}} ) and not test {\ifinlistcs{##1}{blx@biber@datamodel@lists}}} @@ -134,14 +149,24 @@ test {\ifcsstring{blx@dm@datatype}{literal}} ) or - ( test {\ifcsstring{blx@dm@type}{field}} + ( test {\ifcsstring{blx@dm@type}{list}} and - test {\ifcsstring{blx@dm@datatype}{code}} + test {\ifcsstring{blx@dm@datatype}{key}} ) or ( test {\ifcsstring{blx@dm@type}{list}} and - test {\ifcsstring{blx@dm@datatype}{key}} + test {\ifcsstring{blx@dm@datatype}{uri}} + ) + or + ( test {\ifcsstring{blx@dm@type}{list}} + and + test {\ifcsstring{blx@dm@datatype}{verbatim}} + ) + or + ( test {\ifcsstring{blx@dm@type}{field}} + and + test {\ifcsstring{blx@dm@datatype}{code}} ) or test {\ifinlistcs{##1}{blx@biber@datamodel@fields}}} @@ -170,6 +195,11 @@ {\appto\blx@tempa{ skip\string_output="true"}% \booltrue{dmskipout}} {}} +\define@key{blx@datamodel@field}{label}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempa{ label="true"}% + \booltrue{dmlabelfield}} + {}} \newrobustcmd*{\DeclareDatamodelEntryfields}[2][]{% \begingroup @@ -389,11 +419,7 @@ relatedtype, reprinttitle, series, - shorthand, shorthandintro, - shortjournal, - shortseries, - shorttitle, subtitle, title, titleaddon, @@ -408,6 +434,12 @@ volume, volumes} +\DeclareDatamodelFields[type=field, datatype=literal, label=true]{ + shorthand, + shortjournal, + shortseries, + shorttitle} + \DeclareDatamodelFields[type=field, datatype=datepart, nullok]{ urlendyear, endyear, @@ -451,10 +483,12 @@ namea, nameb, namec, - shortauthor, - shorteditor, translator} +\DeclareDatamodelFields[type=list, datatype=name, label=true]{ + shortauthor, + shorteditor} + \DeclareDatamodelFields[type=list, datatype=name, skipout]{sortname} \DeclareDatamodelFields[type=field, datatype=key]{ @@ -494,12 +528,12 @@ \DeclareDatamodelFields[type=field, datatype=uri]{url} -\DeclareDatamodelFields[type=field, format=csv, datatype=entrykey, skipout]{xdata, ids, entryset} -\DeclareDatamodelFields[type=field, format=csv, datatype=entrykey]{related} +\DeclareDatamodelFields[type=field, format=xsv, datatype=entrykey, skipout]{xdata, ids, entryset} +\DeclareDatamodelFields[type=field, format=xsv, datatype=entrykey]{related} -\DeclareDatamodelFields[type=field, format=csv, datatype=keyword]{keywords} +\DeclareDatamodelFields[type=field, format=xsv, datatype=keyword]{keywords} -\DeclareDatamodelFields[type=field, format=csv, datatype=option, skipout]{options, relatedoptions} +\DeclareDatamodelFields[type=field, format=xsv, datatype=option, skipout]{options, relatedoptions} \DeclareDatamodelFields[type=field, datatype=range]{pages} \DeclareDatamodelFields[type=field, datatype=code]{execute} |