From 52e852462540d182f0719ae16cd1fa89c0d074ae Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 26 Mar 2020 21:28:43 +0000 Subject: biblatex-iso690 (26mar20) git-svn-id: svn://tug.org/texlive/trunk@54561 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/biblatex-iso690/bulgarian-iso.lbx | 30 + .../tex/latex/biblatex-iso690/czech-iso.lbx | 14 +- .../tex/latex/biblatex-iso690/english-iso.lbx | 14 +- .../tex/latex/biblatex-iso690/french-iso.lbx | 35 + .../tex/latex/biblatex-iso690/german-iso.lbx | 14 +- .../tex/latex/biblatex-iso690/iso-alphabetic.bbx | 6 +- .../tex/latex/biblatex-iso690/iso-alphabetic.cbx | 2 +- .../tex/latex/biblatex-iso690/iso-alphabetic.dbx | 12 + .../tex/latex/biblatex-iso690/iso-authortitle.bbx | 5 +- .../tex/latex/biblatex-iso690/iso-authortitle.cbx | 7 +- .../tex/latex/biblatex-iso690/iso-authortitle.dbx | 14 +- .../tex/latex/biblatex-iso690/iso-authoryear.bbx | 94 +- .../tex/latex/biblatex-iso690/iso-authoryear.cbx | 15 +- .../tex/latex/biblatex-iso690/iso-authoryear.dbx | 14 +- .../tex/latex/biblatex-iso690/iso-fullcite.cbx | 23 +- .../tex/latex/biblatex-iso690/iso-numeric.bbx | 32 +- .../tex/latex/biblatex-iso690/iso-numeric.cbx | 11 +- .../tex/latex/biblatex-iso690/iso-numeric.dbx | 14 +- .../texmf-dist/tex/latex/biblatex-iso690/iso.bbx | 942 ++++++++++++++++----- .../tex/latex/biblatex-iso690/polish-iso.lbx | 14 +- .../tex/latex/biblatex-iso690/slovak-iso.lbx | 18 +- 21 files changed, 1063 insertions(+), 267 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/biblatex-iso690/bulgarian-iso.lbx create mode 100644 Master/texmf-dist/tex/latex/biblatex-iso690/french-iso.lbx create mode 100644 Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.dbx (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/bulgarian-iso.lbx b/Master/texmf-dist/tex/latex/biblatex-iso690/bulgarian-iso.lbx new file mode 100644 index 00000000000..858f936995f --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/bulgarian-iso.lbx @@ -0,0 +1,30 @@ +\ProvidesFile{bulgarian-iso.lbx} + [2020/03/25 v0.4.0 ISO 690 extended biblatex localization] + +\InheritBibliographyExtras{bulgarian} +\InheritBibliographyStrings{bulgarian} + +\DeclareBibliographyStrings{% + at = {{в}% + {в}}, + bysupervisor = {{ръководен от}% + {ръков\adddotspace от}}, + url = {{достъпен на}% + {дост\adddotspace на}}, + urlalso = {{също достъпен на}% + {също дост\adddotspace на}}, + director = {{режисьор}% + {реж\adddot}}, + bydirector = {{режисиран от}% + {реж\adddotspace от}}, + inventor = {{изобретател}% + {изобр\adddot}}, + byinventor = {{изобретен от}% + {изобр\adddotspace от}}, + online = {{онлайн}% + {онлайн}}, + film = {{филм}% + {филм}}, +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/czech-iso.lbx b/Master/texmf-dist/tex/latex/biblatex-iso690/czech-iso.lbx index 84546aa71d1..ff7967e00fa 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/czech-iso.lbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/czech-iso.lbx @@ -1,5 +1,5 @@ \ProvidesFile{czech-iso.lbx} -[2017/04/25 v0.3.2 biblatex localization] + [2020/03/25 v0.4.0 ISO 690 extended biblatex localization] \InheritBibliographyExtras{czech} \InheritBibliographyStrings{czech} @@ -13,6 +13,18 @@ {dostupn\'{e} z}}, urlalso = {{dostupn\'{e} tak\'{e} z}% {dostupn\'{e} tak\'{e} z}}, + director = {{re\v{z}is\'{e}r}% + {re\v{z}is\'{e}r}}, + bydirector = {{re\v{z}ie}% + {re\v{z}ie}}, + inventor = {{vyn\'{a}lezce}% + {vyn\'{a}lezce}}, + byinventor = {{vyn\'{a}lezce\addcolon}% + {vyn\'{a}lezce\addcolon}},% FIXME: unsure + online = {{online}% + {online}}, + film = {{film}% + {film}}, } \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/english-iso.lbx b/Master/texmf-dist/tex/latex/biblatex-iso690/english-iso.lbx index e1a5e01b6b1..916128b6b8a 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/english-iso.lbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/english-iso.lbx @@ -1,5 +1,5 @@ \ProvidesFile{english-iso.lbx} -[2017/04/25 v0.3.2 biblatex localization] + [2020/03/25 v0.4.0 ISO 690 extended biblatex localization] \InheritBibliographyExtras{english} \InheritBibliographyStrings{english} @@ -11,6 +11,18 @@ {supervised by}}, urlalso = {{available also from}% {available also from}}, + director = {{director}% + {director}}, + bydirector = {{directed by}% + {directed by}}, + inventor = {{inventor}% + {inventor}}, + byinventor = {{invented by}% + {invented by}}, + online = {{online}% + {online}}, + film = {{film}% + {film}}, } \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/french-iso.lbx b/Master/texmf-dist/tex/latex/biblatex-iso690/french-iso.lbx new file mode 100644 index 00000000000..e249655c719 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/french-iso.lbx @@ -0,0 +1,35 @@ +\ProvidesFile{french-iso.lbx} + [2020/03/25 v0.4.0 ISO 690 extended biblatex localization] + +\InheritBibliographyExtras{french} +\InheritBibliographyStrings{french} + +% `french.lbx` overrides the family name format to \textsc +% that is against the consistency rule since we use uppercase +% as default. +\DeclareBibliographyExtras{% + \restorecommand\mkbibnamefamily +} + +\DeclareBibliographyStrings{% + at = {{à}% + {à}}, + bysupervisor = {{supervisé par}% + {supervisé par}}, + urlalso = {{aussi disponible à l'adresse}% + {aussi disponible à l'adresse}}, + director = {{réalisateur}% + {réalisateur}}, + bydirector = {{réalisé par}% + {réalisé par}}, + inventor = {{inventeur}% + {inventeur}}, + byinventor = {{inventé par}% + {inventé par}}, + online = {{en ligne}% + {en ligne}}, + film = {{film}% + {film}}, +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/german-iso.lbx b/Master/texmf-dist/tex/latex/biblatex-iso690/german-iso.lbx index 486a5d506dc..7146b27e7ca 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/german-iso.lbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/german-iso.lbx @@ -1,5 +1,5 @@ \ProvidesFile{german-iso.lbx} -[2017/04/25 v0.3.2 biblatex localization] + [2020/03/25 v0.4.0 ISO 690 extended biblatex localization] \InheritBibliographyExtras{german} \InheritBibliographyStrings{german} @@ -11,6 +11,18 @@ {betreut von}}, urlalso = {{auch verf\"{u}gbar unter} {auch verf\"{u}gbar unter}}, +% director = {{}% +% {}},% FIXME: missing +% bydirector = {{}% +% {}},% FIXME: missing +% inventor = {{}% +% {}},% FIXME: missing +% byinventor = {{}% +% {}},% FIXME: missing +% online = {{}% +% {}},% FIXME: missing +% film = {{}% +% {}},% FIXME: missing } \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.bbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.bbx index 8e460f2cbba..beef88d4146 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.bbx @@ -1,5 +1,5 @@ -\ProvidesFile{alphabetic.bbx} -[2017/04/25 v0.3.2 biblatex citation style] +\ProvidesFile{iso-alphabetic.bbx} + [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style] % This is a copy of alphabetic.bbx % It only uses iso as base style, instead of standard @@ -18,7 +18,7 @@ {\list {\printtext[labelalphawidth]{% \printfield{labelprefix}% - \printfield{labelalpha}% + \printfield{labelalpha}% \printfield{extraalpha}}} {\setlength{\labelwidth}{\labelalphawidth}% \setlength{\leftmargin}{\labelwidth}% diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.cbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.cbx index 2a4bdcbfa0e..2d90c118d0a 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.cbx @@ -1,5 +1,5 @@ \ProvidesFile{iso-alphabetic.cbx} -[2017/04/25 v0.3.2 biblatex citation style] + [2020/03/25 v0.4.0 ISO 690 biblatex citation style] \RequireCitationStyle{alphabetic} diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.dbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.dbx new file mode 100644 index 00000000000..2248f37e35e --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-alphabetic.dbx @@ -0,0 +1,12 @@ +\ProvidesFile{iso-alphabetic.dbx} + [2020/03/25 v0.4.0 ISO 690 biblatex data model extension] + +\RequireBiber[3] + +% Declare new fields +\DeclareDatamodelFields[type=list, datatype=name]{supervisor} +\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon} + +% Declare new fields for (specific / all) entry types +\DeclareDatamodelEntryfields[thesis]{supervisor} +\DeclareDatamodelEntryfields{dateaddon} diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.bbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.bbx index e558c54fda3..ab683014ce0 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.bbx @@ -1,8 +1,9 @@ -\ProvidesFile{iso-authortitle.bbx}[2017/04/25 v0.3.2 biblatex bibliography style] +\ProvidesFile{iso-authortitle.bbx} + [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style] \RequireBibliographyStyle{iso} \ExecuteBibliographyOptions{% - sorting=nty + sorting=nty, } \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.cbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.cbx index f6b9e0aa8d4..8226b9bc92f 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.cbx @@ -1,8 +1,9 @@ -\ProvidesFile{iso-authortitle.cbx}[2017/04/25 v0.3.2 biblatex citation style] +\ProvidesFile{iso-authortitle.cbx} + [2020/03/25 v0.4.0 ISO 690 biblatex citation style] \ExecuteBibliographyOptions{% - maxcitenames=1 - ,mincitenames=1 + maxcitenames=1, + mincitenames=1, } \RequireCitationStyle{authortitle} diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.dbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.dbx index fe51d184d24..f6d17afa406 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.dbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authortitle.dbx @@ -1,6 +1,12 @@ -\ProvidesFile{iso-authortitle.dbx}[2017/04/25 v0.3.2 biblatex data model extension] +\ProvidesFile{iso-authortitle.dbx} + [2020/03/25 v0.4.0 ISO 690 biblatex data model extension] + \RequireBiber[3] -\DeclareDatamodelFields[type=list,datatype=name]{supervisor} -\DeclareDatamodelFields[type=field,datatype=literal]{classification} + +% Declare new fields +\DeclareDatamodelFields[type=list, datatype=name]{supervisor} +\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon} + +% Declare new fields for (specific / all) entry types \DeclareDatamodelEntryfields[thesis]{supervisor} -\DeclareDatamodelEntryfields[patent]{classification} +\DeclareDatamodelEntryfields{dateaddon} diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.bbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.bbx index a7a84cb7bc2..6a8da0a12d4 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.bbx @@ -1,41 +1,101 @@ -\ProvidesFile{iso-authoryear.bbx}[2017/04/25 v0.3.2 biblatex bibliography style] +\ProvidesFile{iso-authoryear.bbx} + [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style] \RequireBibliographyStyle{iso} \ExecuteBibliographyOptions{% - sorting=nyt + sorting=nyt, } -\def\printextrayear{% - \ifentrytype{patent} - {} - {\printfield{year}\printfield{extradate}}% +% The separator between 'titles' and the numeration section. +% Overrides the command in 'iso.bbx'. +\renewcommand{\numerationpunct}{\newunitpunct} + +% Delimiter between creator name and year in bibliography +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addcomma\space} +% Delimiter between substitution of creator name (if any) +% and year in bibliography +\DeclareDelimFormat[bib,biblist]{nonameyeardelim}{\addcomma\space} + +% a) +% The field extradate turns from integer type to a letter +% after year to distinguish more works of the author +% from the same year, e.g. 1994a, 1994b. +% We use 'labeldate' as it is also used in standard styles. +% b) +% Moreover we print additional date information (dateaddon). +\newbibmacro*{date+extradate}{% + \printlabeldateextra + \setunit{\dateaddonpunct}% + \iffieldequalstr{labeldatesource}{dateaddon} + {}% Do not print dateaddon twice + {\printfield{dateaddon}}% +} + +% Check if 'date' field holds only year or a more specific date. +% Inspired by \ifdatehasyearonlyprecision from 'biblatex.sty', +% but the test date==year is left out, because we use date=year +% in package options so it turned always true. +\newcommand{\ifdatehasyearonly}{% + \ifboolexpr{not test {\iffieldundef{year}} + and (test {\iffieldundef{month}} + and test {\iffieldundef{season}})} +} + +% If there is no more specific date available, we shouldn't repeat +% the year in publication info section. +% Overrides macro 'fulldate' in 'iso.bbx'. +\renewbibmacro*{fulldate}{% + \ifdatehasyearonly% + {}% Print nothing (only year is available) + {\mkdaterangeiso{}}% } -% remove second appearance of year in a reference +% Remove second appearance of year in a reference \renewbibmacro*{date}{}% -% overwrite names:primary to print year right after +% Overwrite names:primary to print year right after: % 1) author % 2) editor % 3) label/title -% need to handle not to print editor twice (primary -% and subsidiary names) +% Need to handle not to print editor twice (primary +% and subsidiary names): editor macro includes \clearname{editor} \renewbibmacro*{names:primary}{% + % First check if we have author(s) available \ifboolexpr{ test \ifuseauthor and not test {\ifnameundef{author}} } - {\usebibmacro{author}}% - {\usebibmacro{editor}}% - \setunit{\addspace}\printfield{nameaddon}% - \setunit{\addcomma\space}\printextrayear% + {\usebibmacro{author}% + \setunit{\addspace}% + \printfield{nameaddon}% + \setunit{\printdelim{nameyeardelim}}}% + {% If no author(s) is available, check for editor(s) + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{editor}% + \setunit{\printdelim{nameyeardelim}}}% + {% If no editor(s) is available, use label/title + \usebibmacro{labeltitle}% + \setunit{\printdelim{nonameyeardelim}}}}% + % And finally print date + \usebibmacro{date+extradate}% } -\InitializeBibliographyStyle{\global\undef\bbx@lasthash} +% Print label or title in place of names if they are not available +\newbibmacro*{labeltitle}{% + \iffieldundef{label} + {\iffieldundef{shorttitle} + {\usebibmacro{titles}{}{emph}% + \clearfield{title}% + \clearfield{subtitle}% + \clearfield{titleaddon}} + {\printfield[title]{shorttitle}}} + {\printfield{label}}} -\newbibmacro*{bbx:savehash}{% - \savefield{fullhash}{\bbx@lasthash}} \newbool{bbx@inset} \DeclareBibliographyDriver{set}{% diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.cbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.cbx index 2d58ac71d98..abdd15db203 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.cbx @@ -1,14 +1,19 @@ -\ProvidesFile{iso-authoryear.cbx}[2017/04/25 v0.3.2 biblatex citation style] +\ProvidesFile{iso-authoryear.cbx} + [2020/03/25 v0.4.0 ISO 690 biblatex citation style] +% Use only one name in citation to be consistent \ExecuteBibliographyOptions{% - maxcitenames=1 - ,mincitenames=1 + maxcitenames=1, + mincitenames=1, } \RequireCitationStyle{authoryear} \RequireCitationStyle{iso-fullcite} -\renewcommand*{\nameyeardelim}{\addcomma\addspace} -\renewcommand*{\nonameyeardelim}{\addcomma\addspace} +% Delimiter between creator name and year in citation +\DeclareDelimFormat{nameyeardelim}{\addcomma\space} +% Delimiter between substitution of creator name (if any) +% and year in citation +\DeclareDelimFormat{nonameyeardelim}{\addcomma\space} \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.dbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.dbx index c024de9d215..8b08856bba5 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.dbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-authoryear.dbx @@ -1,6 +1,12 @@ -\ProvidesFile{iso-authoryear.dbx}[2017/04/25 v0.3.2 biblatex data model extension] +\ProvidesFile{iso-authoryear.dbx} + [2020/03/25 v0.4.0 ISO 690 biblatex data model extension] + \RequireBiber[3] -\DeclareDatamodelFields[type=list,datatype=name]{supervisor} -\DeclareDatamodelFields[type=field,datatype=literal]{classification} + +% Declare new fields +\DeclareDatamodelFields[type=list, datatype=name]{supervisor} +\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon} + +% Declare new fields for (specific / all) entry types \DeclareDatamodelEntryfields[thesis]{supervisor} -\DeclareDatamodelEntryfields[patent]{classification} +\DeclareDatamodelEntryfields{dateaddon} diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-fullcite.cbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-fullcite.cbx index 76d3ada239f..4e3af0c95a8 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-fullcite.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-fullcite.cbx @@ -1,20 +1,27 @@ +\ProvidesFile{iso-fullcite.cbx} + [2020/03/25 v0.4.0 ISO 690 biblatex fullcite modifications] + % Fix for fullcite + +% Based on \fullcite standard command +% Adds only formatting directive of \mkbibnamefamily \DeclareCiteCommand{\fullcite} - {\usebibmacro{prenote}% - \renewcommand*\mkbibnamelast{\lastnameformat}% - \renewcommand*\mkbibnamefamily{\lastnameformat}} + {\usebibmacro{prenote}} {\usedriver - {\DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}% + \renewcommand*{\mkbibnamefamily}{\familynameformat}} {\thefield{entrytype}}} {\multicitedelim} {\usebibmacro{postnote}} + +% Based on \footfullcite standard command +% Adds only formatting directive of \mkbibnamefamily \DeclareCiteCommand{\footfullcite}[\mkbibfootnote] - {\usebibmacro{prenote}% - \renewcommand*\mkbibnamelast{\textsc}% - \renewcommand*\mkbibnamefamily{\textsc}} + {\usebibmacro{prenote}} {\usedriver - {\DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}% + \renewcommand*{\mkbibnamefamily}{\familynameformat}} {\thefield{entrytype}}} {\multicitedelim} {\usebibmacro{postnote}} diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.bbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.bbx index ba64c58a693..c4bb9b742b7 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.bbx @@ -1,36 +1,30 @@ -\ProvidesFile{iso-numeric.bbx}[2017/04/25 v0.3.2 biblatex bibliography style] +\ProvidesFile{iso-numeric.bbx} + [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style] \RequireBibliographyStyle{iso} \ExecuteBibliographyOptions{% - sorting=none, - labelnumber + sorting=none,% bib entries in the bibliography are in their citation order + labelnumber,% enable numbers for bib entries } +% The numbers of bib entries are printed with a dot after number +% in the bibliography. \DeclareFieldFormat{labelnumberwidth}{#1\adddot} -\@ifpackagelater{biblatex}{2016/03/27} - {\newcommand\MethodFormat{% - \printtext[labelnumberwidth]{% - \printfield{labelprefix}% - \printfield{labelnumber}}}}% - {\newcommand\MethodFormat{% - \printtext[labelnumberwidth]{% - \printfield{prefixnumber}% - \printfield{labelnumber}}}}% - % Copy-pasted from 'numeric.bbx' \defbibenvironment{bibliography} - {\list% - {\MethodFormat}% + {\list + {\printtext[labelnumberwidth]{% + \printfield{labelprefix}% + \printfield{labelnumber}}} {\setlength{\labelwidth}{\labelnumberwidth}% \setlength{\leftmargin}{\labelwidth}% \setlength{\labelsep}{\biblabelsep}% \addtolength{\leftmargin}{\labelsep}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}% - \renewcommand*{\makelabel}[1]{\hss##1} - }% - {\endlist}% - {\item}% + \renewcommand*{\makelabel}[1]{\hss##1}} + {\endlist} + {\item} \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.cbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.cbx index dc54ba52279..a7dbe8e9701 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.cbx @@ -1,6 +1,15 @@ -\ProvidesFile{iso-numeric.cbx}[2017/04/25 v0.3.2 biblatex citation style] +\ProvidesFile{iso-numeric.cbx} + [2020/03/25 v0.4.0 ISO 690 biblatex citation style] \RequireCitationStyle{numeric} \RequireCitationStyle{iso-fullcite} +% Format \parencite with parentheses instead of brackets +\DeclareCiteCommand{\parencite}[\mkbibparens]% <---- was \mkbibbrackets + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.dbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.dbx index c2bded8f073..6cf14fe74e1 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.dbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso-numeric.dbx @@ -1,6 +1,12 @@ -\ProvidesFile{iso-numeric.dbx}[2017/04/25 v0.3.2 biblatex data model extension] +\ProvidesFile{iso-numeric.dbx} + [2020/03/25 v0.4.0 ISO 690 biblatex data model extension] + \RequireBiber[3] -\DeclareDatamodelFields[type=list,datatype=name]{supervisor} -\DeclareDatamodelFields[type=field,datatype=literal]{classification} + +% Declare new fields +\DeclareDatamodelFields[type=list, datatype=name]{supervisor} +\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon} + +% Declare new fields for (specific / all) entry types \DeclareDatamodelEntryfields[thesis]{supervisor} -\DeclareDatamodelEntryfields[patent]{classification} +\DeclareDatamodelEntryfields{dateaddon} diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/iso.bbx b/Master/texmf-dist/tex/latex/biblatex-iso690/iso.bbx index c4d0f165316..ce2668f718b 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/iso.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/iso.bbx @@ -1,54 +1,76 @@ -\ProvidesFile{iso.bbx}[2017/04/25 v0.3.2 biblatex bibliography style] +\ProvidesFile{iso.bbx} + [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style] -\DeclareLanguageMapping{czech}{czech-iso} -\DeclareLanguageMapping{english}{english-iso} -\DeclareLanguageMapping{slovak}{slovak-iso} -\DeclareLanguageMapping{german}{german-iso} -\DeclareLanguageMapping{polish}{polish-iso} -\NewBibliographyString{at,bysupervisor,urlalso} +% Currently available language mappings: +% Czech, English, Slovak, German, Polish, Bulgarian, +% French +\DeclareLanguageMappingSuffix{-iso} +% Currently needed the following additional language strings: +\NewBibliographyString{at,bysupervisor,urlalso, + director,bydirector,inventor,byinventor,online,film} -%options +% PACKAGE OPTIONS +% Define new package options +% These toggle names are internal \newtoggle{bbx:spcolon} +\newtoggle{bbx:totalpages} +\newtoggle{bbx:shortnum} +\newtoggle{bbx:thesisinfoinnotes} +\newtoggle{bbx:url} +\newtoggle{bbx:isbn} +\newtoggle{bbx:doi} +\newtoggle{bbx:eprint} +\newtoggle{bbx:articlepubinfo} + +% Print info about package options into .log file +\protected\def\isoblx@info@noline#1{% + \PackageInfo{biblatex-iso690}{#1\@gobble}} +\let\isoblx@info\isoblx@info@noline +\AtEndOfPackage{% + \protected\def\isoblx@info#1{% + \PackageInfo{biblatex-iso690}{#1}}} + +% Declare new package options +% Description of these options is in the doc file +% '\isoblx@info@noline' command prints to the .log file \DeclareBibliographyOption{spacecolon}[true]{% \settoggle{bbx:spcolon}{#1}% - \typeout{Space colon enabled: #1}} + \isoblx@info@noline{Space colon enabled: #1}} -\newtoggle{bbx:totalpages} \DeclareBibliographyOption{pagetotal}[true]{% \settoggle{bbx:totalpages}{#1}% - \typeout{Showing total pages enabled: #1}} + \isoblx@info@noline{Total pages enabled: #1}} -\newtoggle{bbx:shortnum} \DeclareBibliographyOption{shortnumeration}[true]{% \settoggle{bbx:shortnum}{#1}% - \typeout{Short numeration enabled: #1}} + \isoblx@info@noline{Short numeration enabled: #1}} -\newtoggle{bbx:thesisinfoinnotes} \DeclareBibliographyOption{thesisinfoinnotes}[true]{% \settoggle{bbx:thesisinfoinnotes}{#1}% - \typeout{Printing thesis info at the end enabled: #1}} + \isoblx@info@noline{Printing thesis info at the end enabled: #1}} -\newtoggle{bbx:url} \DeclareBibliographyOption{url}[true]{% \settoggle{bbx:url}{#1}% - \typeout{Showing URL field enabled: #1}} + \isoblx@info@noline{URL field enabled: #1}} -\newtoggle{bbx:isbn} \DeclareBibliographyOption{isbn}[true]{% \settoggle{bbx:isbn}{#1}% - \typeout{Showing ISBN field enabled: #1}} + \isoblx@info@noline{ISBN field enabled: #1}} -\newtoggle{bbx:doi} \DeclareBibliographyOption{doi}[true]{% \settoggle{bbx:doi}{#1}% - \typeout{Showing DOI field enabled: #1}} + \isoblx@info@noline{DOI field enabled: #1}} -\newtoggle{bbx:eprint} \DeclareBibliographyOption{eprint}[true]{% \settoggle{bbx:eprint}{#1}% - \typeout{Showing eprint field enabled: #1}} + \isoblx@info@noline{eprint field enabled: #1}} + +\DeclareBibliographyOption{articlepubinfo}[true]{% + \settoggle{bbx:articlepubinfo}{#1}% + \isoblx@info@noline{Article publication info enabled: #1}} +% Set default package options \ExecuteBibliographyOptions{% spacecolon=false, pagetotal=false, @@ -58,47 +80,67 @@ isbn=true, doi=true, eprint=true, - % sorting=nyt, - maxnames=9, - minnames=1, - citetracker=true, - autolang=other, - date=year, - urldate=iso, - seconds=true, + articlepubinfo=false, % Printing article publication info is unusual + maxnames=99,% If possible, all creators should be given in the reference + minnames=1,% If any names are omitted => first creator + and others (et al.) + citetracker=true,% Citation tracker in global mode + autolang=other,% Use the 'langid' language for the entry + date=year,% Use only years + urldate=iso,% Use ISO8601 Extended Format (yyyy-mm-dd) for URL 'seen' dates + seconds=true,% ISO8601 format requires 'seconds=true' + datecirca=true,% Use circa for approximate dates } +% Default definitions of beginning and closing macro +% in bibliography drivers \newbibmacro*{begentry}{} \newbibmacro*{finentry}{\finentry} -%commands +% COMMANDS -\newcommand\mainsstring[1]{\bibsstring[\mainlang]{#1}} -\newcommand\mainlstring[1]{\biblstring[\mainlang]{#1}} +% The separator between 'titles' and 'subtitles' +\renewcommand*{\subtitlepunct}{\addspacecolon\space} -\renewcommand*\subtitlepunct{\addspacecolon\addspace} -\renewcommand\multinamedelim{\addsemicolon\addspace} -\renewcommand\finalnamedelim{\multinamedelim} +% The separator between more standard identifiers, like ISBNs or ISSNs. +% Default separator is comma and space. You can use something like +% \renewcommand{\stdidentifierspunct}{\addsemicolon\space} +% in the preamble to change the separator +\newcommand{\stdidentifierspunct}{\addcomma\space} -\newcommand\addspacecolon{% +% The separator between date and dateaddon +\newcommand{\dateaddonpunct}{\addspace} + +% The separator between 'dates' and the numeration section +\newcommand{\numerationpunct}{\addcomma\space} + +% A colon preceded with or without space +\newcommand{\addspacecolon}{% \iftoggle{bbx:spcolon} - {\addnbspace\blx@addsppunct{colon}} - {\unspace\blx@addsppunct{colon}}% + {\addnbspace\addspcolon} + {\unspace\addspcolon}% } -% Thanks Moewew for sugesting this. Make uppercase names only in biblipgraphy. +% Context-sensitive delimiters + +% The delimiter between mutliple names +% A semicolon: legacy of older versions of standard / Czech interpretations +\DeclareDelimFormat{multinamedelim}{\addsemicolon\space} + +% The delimiter before the final name +% Use consistent name format for all creators +\DeclareDelimAlias{finalnamedelim}{multinamedelim} + +% Thanks Moewew for sugesting this. Make uppercase names only in bibliography. % Default name format is ALL-CAPS -% use something like -% \let\lastnameformat=\textsc +% use something like +% \let\familynameformat=\textsc % to change this - -\providecommand{\mkbibnamefamily}[1]{#1} -\newcommand\lastnameformat[1]{\MakeUppercase{#1}} +\newcommand{\familynameformat}[1]{\MakeUppercase{#1}} \AtBeginBibliography{% - \renewcommand\mkbibnamelast{\lastnameformat}% - \renewcommand\mkbibnamefamily{\lastnameformat}% + \renewcommand{\mkbibnamefamily}{\familynameformat}% } +% Default bibliography environment (layout) \defbibenvironment{bibliography} {\list% {}% @@ -106,94 +148,187 @@ \setlength{\itemindent}{-\leftmargin}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}% - \renewcommand*{\makelabel}[1]{\hss##1} - %\raggedright} - }% + \renewcommand*{\makelabel}[1]{\hss##1}}% {\endlist}% {\item}% -% -%field formats +% FIELD FORMATS + +% Format title and subtitle as is \DeclareFieldFormat*{title}{#1} \DeclareFieldFormat*{subtitle}{#1} -\DeclareFieldFormat{volume}{\bibsstring{volume}\addnbspace#1}% volume of a book + +% Format volume field with localisation string +\DeclareFieldFormat{volume}{\bibstring{volume}\addnbspace#1}% volume of a book +% Differentiate volume in journal \DeclareFieldFormat[article,periodical]{volume}{% \iftoggle{bbx:shortnum} {\mkbibbold{#1}} - {\bibsstring{jourvol}\addnbspace#1}% volume of a journal + {\bibstring{jourvol}\addnbspace#1}% volume of a journal } + +% Edition field could be: +% a) numeral: use with localisation string +% b) literal: capitalize given string \DeclareFieldFormat*{edition}{% \ifnumeral{#1}% - {\mkbibordedition{#1}\addnbspace\bibsstring{edition}}% + {\mkbibordedition{#1}\addnbspace\bibstring{edition}}% {\MakeCapital{#1}}% }% + +% Format pagination for page range +% Always use main document language for this field \DeclareFieldFormat*{pages}{\mkmlpageprefix[bookpagination]{#1}} +% Differentiate page range in journal \DeclareFieldFormat[article,periodical]{pages}{% \iftoggle{bbx:shortnum} {#1} - {\mainsstring{pages}\addspace\printtext{#1}}% + {\mkmlpageprefix[bookpagination]{#1}}% } + +% Format pagination for total number of pages +% Always use main document language for this field \DeclareFieldFormat*{pagetotal}{\mkbibbrackets{\mkmlpagetotal[bookpagination]{#1}}} -\DeclareFieldFormat*{number}{\bibsstring{number}\addspace\printtext{#1}} + +% Format number field with localisation string +\DeclareFieldFormat*{number}{\bibstring{number}\addspace #1} +% Differentiate number in journal \DeclareFieldFormat[article,periodical]{number}{% \iftoggle{bbx:shortnum} {\mkbibparens{#1}} - {\bibsstring{number}\addspace\printtext{#1}}% + {\bibstring{number}\addspace #1}% } -\DeclareFieldFormat[patent]{number}{#1} +% Differentiate number for patent and report: format as is +\DeclareFieldFormat[patent,report]{number}{#1} + +% a) url AND no urldate: use localisation string 'available ALSO from', +% meaning: the work is not primarily published electronically +% b) url AND urldate: use localisation string 'available from' \DeclareFieldFormat*{url}{% \iffieldundef{urlyear} - {\mainlstring{urlalso}\addcolon\space\url{#1}} - {\mainlstring{urlfrom}\addcolon\space\url{#1}}% + {\mainlangbibstring{urlalso}} + {\mainlangbibstring{urlfrom}}% + \addcolon\space\url{#1}% } -\DeclareFieldFormat{doi}{% - \printtext{DOI}\addcolon\space - \ifhyperref - {\href{https://doi.org/#1}{\nolinkurl{#1}}} - {\nolinkurl{#1}}% -} -\DeclareFieldFormat{howpublished}{\mkbibbrackets{#1}} -\DeclareFieldFormat[online]{howpublished}{% - \iffieldundef{howpublished} - {\mkbibbrackets{online}} + +% Format medium type in square brackets +% If available, use the localisation string for the key +\DeclareFieldFormat{howpublished}{% + \ifbibstring{#1} + {\mainlangbibstring[\mkbibbrackets]{#1}} {\mkbibbrackets{#1}}% } +% Format type, e.g. type of thesis +% If available, use the localisation string for the key \DeclareFieldFormat{type}{% \ifbibstring{#1} - {\mainlstring{#1}} + {\mainlangbibstring{#1}} {#1}% } +% Format supervisor of thesis (precedes the name with a localisation string) \DeclareFieldFormat{supervisor}{% - \mainlstring{bysupervisor}\addspace#1} + \mainlangbibstring{bysupervisor}\addspace#1} + +% \mkbibacro typesets acronyms in small caps by default, +% if we want to override this, pass the value as is (uppercase) +% \renewcommand*{\mkbibacro}[1]{#1} +% Applies to DOI, ISBN, ISSN, ISAN, ISMN, ISRN, ISWC -%We must handle more than one isbn and issn +% If we really must handle more than one ISBN and ISSN. +% +% Typically there could be different ISBN / ISSN for printed and electronic +% media versions, but the standard says that the specific copy or instance of +% the document should be cited, so the author should choose the appropriate +% number in the bib file. Otherwise include comma-separated list of numbers in +% the bib field 'isbn' or 'issn'. + +% Separator value between more ISBNs / ISSNs is handled by '\stdidentifierspunct'. +% Default format is the name of identifier + space + number: +% e.g. 'ISBN 978-3-642-21665-7' \DeclareFieldFormat{isbn}{% - %\renewcommand*{\do}[1]{\printtext{ISBN}\addspace#1\adddot\addspace}% - \printtext{ISBN}\addspace#1}% + % Execute this rule for the first value of the csv field + \def\do##1{\mkbibacro{ISBN}\space##1% + % Execute this rule for the next value(s) of the csv field + \def\do####1{\stdidentifierspunct\mkbibacro{ISBN}\space####1}}% + % Process the csv field with \do command + \docsvfield{isbn}% +} +% The same formatting rules as for ISBN above \DeclareFieldFormat{issn}{% - \renewcommand*{\do}[1]{\printtext{ISSN}\addspace#1\adddot\addspace}% - \docsvfield{issn}}% + \def\do##1{\mkbibacro{ISSN}\space##1% + \def\do####1{\stdidentifierspunct\mkbibacro{ISSN}\space####1}}% + \docsvfield{issn}% +} + +% Format other standard identifiers +% Default format is the name of identifier + space + number +\DeclareFieldFormat{isan}{\mkbibacro{ISAN}\addspace#1} +\DeclareFieldFormat{ismn}{\mkbibacro{ISMN}\addspace#1} +\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addspace#1} +\DeclareFieldFormat{iswc}{\mkbibacro{ISWC}\addspace#1} -\DeclareFieldFormat{isan}{\printtext{ISAN}\addspace#1} -\DeclareFieldFormat{ismn}{\printtext{ISMN}\addspace#1} -\DeclareFieldFormat{isrn}{\printtext{ISRN}\addspace#1} -\DeclareFieldFormat{iswc}{\printtext{ISWC}\addspace#1} +% Format url seen date with preceding localisation string in square brackets +\DeclareFieldFormat{urldate}{\mkbibbrackets{\mainlangbibstring{urlseen}\space#1}} -\DeclareFieldFormat{urldate}{\mkbibbrackets{\mainsstring{urlseen}\space#1}} +% Format additional date information as is (use bib file for modifications). +\DeclareFieldFormat{dateaddon}{#1} +% Format circa date with preceding localisation string in square brackets; +% default \datecircaprint is \bibstring{circa}\printdelim{datecircadelim}, +% e.g. [ca. 1940]. +\DeclareFieldFormat{date}{% + \ifdatecirca + {\mkbibbrackets{#1}}% + {#1}% +} + +% Format 'labeldate' the same as 'date' field. +% We use 'labeldate' in 'iso-authoryear' style. +% Format circa date and nodate. Dateaddon and date as is. +\DeclareFieldFormat{labeldate}{% + \ifdatecirca + {\mkbibbrackets{#1}}% + {% Check if there is 'nodate' from 'labeldate' + \iffieldequalstr{labeldatesource}{nodate} + % This is a \literal{nodate}, meaning that it uses the 'nodate' + % localisation string due to default \DeclareLabeldate setting + {\mkbibbrackets{#1}}% + {#1}}% This is the go-to format +} + +% Define dates to consider for 'labeldate', based on +% the default definition, but without 'urldate' field, +% preventing printing url seen date in place of the year +% of a publication. +\DeclareLabeldate{% + \field{date} + \field{year} + \field{dateaddon}% <---- biblatex-iso690 data model extension + \field{eventdate} + \field{origdate} + \literal{nodate} +} + +% Format chapter of book with preceding localisation string \DeclareFieldFormat{chapter}{\bibstring{chapter}\addnbspace#1\isdot} + +% Version field could be: +% a) numeral: use with localisation string +% b) literal: capitalize given string \DeclareFieldFormat{version}{% \ifnumeral{#1}% - {\biblstring{version}\addnbspace#1}% + {\bibstring{version}\addnbspace#1}% {\MakeCapital{#1}}% } +% Format library field as is (location information) \DeclareFieldFormat{library}{#1} +% Format (sub)titles as they are \DeclareFieldFormat{journaltitle}{#1} \DeclareFieldFormat{booktitle}{#1} \DeclareFieldFormat{maintitle}{#1} @@ -203,55 +338,72 @@ \DeclareFieldFormat{mainsubtitle}{#1} \DeclareFieldFormat{issuesubtitle}{#1} +% Format other / alternative titles in square brackets \DeclareFieldFormat{titleaddon}{\mkbibbrackets{#1}} -\DeclareFieldFormat{booktitleaddon}{\mkbibbrackets{#1}} -\DeclareFieldFormat{maintitleaddon}{\mkbibbrackets{#1}} +\DeclareFieldAlias{booktitleaddon}{titleaddon} +\DeclareFieldAlias{maintitleaddon}{titleaddon} +% Format additional name information in square brackets \DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1}} -%name alias +% NAME ALIAS -\DeclareNameAlias{default}{last-first} -\DeclareNameAlias{supervisor}{first-last} +% Default name list format is last (family) followed by given (first) name +\DeclareNameAlias{default}{family-given} +% For supervisor, use the reversed order format: +% given (first) name followed by last (family) name, +% so it may sound more naturally in this order +\DeclareNameAlias{supervisor}{given-family} -%bibliography macros +% BIBLIOGRAPHY MACROS -%names +% NAMES MACROS -% based on author/editor macro +% Based on author/editor macro +% Adds nameaddon field to author names \newbibmacro*{names:primary}{% \ifboolexpr{ test \ifuseauthor and not test {\ifnameundef{author}} } - {\usebibmacro{author}} + {\usebibmacro{author}% + \setunit{\addspace}% + \printfield{nameaddon}}% {\usebibmacro{editor}}% - \setunit{\addspace}\printfield{nameaddon}% } +% Macro for secondary authors with their role \newbibmacro*{names:subsidiary}{% \usebibmacro{byeditor}% \newunit \usebibmacro{bytranslator}% } +% Don't owerwrite default macros to change only delimiters / punctuation, +% declare their format instead. % https://github.com/michal-h21/biblatex-iso690/issues/68#issuecomment-435650072 -\DeclareFieldFormat{editortype}{\mkbibparens{#1}} +\DeclareFieldFormat{editortype}{\mkbibparens{#1}} \DeclareDelimFormat{editortypedelim}{\addspace} +\DeclareFieldFormat{authortype}{\mkbibparens{#1}} +\DeclareDelimFormat{authortypedelim}{\addspace} - +% Macro for printing supervisor field \newbibmacro*{thesissupervisor}{% \ifnameundef{supervisor} {} - {\printtext{\mainlstring{bysupervisor}}% - \addspace% + {\mainlangbibstring{bysupervisor}% + \setunit{\addspace}% \printnames{supervisor}}% } -%titles +% TITLES MACROS +% Macro for formatting titles +% 1st argument: prefix / type of title (e.g. main, book, event), +% if empty, 'title' field is handled +% 2nd argument: formatting directive (e.g. emph) \newbibmacro{titles}[2]{% \ifboolexpr{ test {\iffieldundef{#1title}} @@ -262,19 +414,21 @@ \printfield{#1title}% \setunit{\subtitlepunct}% \printfield{#1subtitle}}% - \setunit{\addspace}}% + \setunit{\addspace}}% \printfield{#1titleaddon}% \newunit }% +% Macro for printing volumes (part of volumes) \newbibmacro{volume}{% \iffieldundef{volume} {} {\printfield{volume}% \printfield{part}% - \setunit{\addcomma\addspace}}% + \setunit{\addcomma\space}}% } +% Macro for formatting multiple titles \newbibmacro{multi:titles}{% \iffieldundef{maintitle} {\iffieldundef{booktitle} @@ -287,6 +441,8 @@ \usebibmacro{titles}{}{}}% } +% Macro for formatting multiple hierarchical titles +% (e.g. for inbook, incollection) \newbibmacro{host:titles}{% \iffieldundef{maintitle} {\iffieldundef{booktitle} @@ -295,6 +451,7 @@ {\usebibmacro{titles}{main}{emph}}% }% +% Macro for formatting multiple titles in periodicals \newbibmacro{periodical:titles}{% \usebibmacro{titles}{}{emph}% \newunit @@ -305,64 +462,117 @@ {\usebibmacro{titles}{issue}{}}% } -%medium type +% MEDIUM TYPE MACROS \newbibmacro*{medium-type}{% \iffieldundef{howpublished} - {\iffieldundef{urlyear} - {} - {\printtext{\mkbibbrackets{online}}}} - {\printfield{howpublished}}% + {% Automatic printing of '[online]' type of medium when + % a) 'urldate' is present AND + % b) url is enabled (pkg option url=true) OR + % entry type is '@online' + \ifboolexpr{ + not test {\iffieldundef{urlyear}} + and ( test {\iftoggle{bbx:url}} + or test {\ifentrytype{online}}) + } + % Use a localisation string 'online' in the main document language + {\mainlangbibstring[\mkbibbrackets]{online}}% + {}}% Don't print anything + {% The only situation when we don't want to print + % 'howpublished' field is when + % a) url is disabled (pkg option url=false) AND + % b) entry type is other than '@online' AND + % c) 'howpublished' field is 'online'. + % Please note that this field is not checked against + % any possible literal value (e.g. electronic, online article) + % that should be probably also hidden when a) AND b) hold. + \ifboolexpr{ + test {\iffieldequalstr{howpublished}{online}} + and not test {\iftoggle{bbx:url}} + and not test {\ifentrytype{online}} + } + {}% Don't print 'howpublished' field + {\printfield{howpublished}}}% } -%publication info +% PUBLICATION INFO MACROS + +% By default only year is used, but for some entries, +% we need full date (day or even time precision), +% (e.g. patents, TV shows, newspapers, online news) -\newbibmacro{fulldate}{% - \printtext{\csname mkbibrangeiso8601\endcsname{\thefield{date}}}% +% Macro for printing full date (full = YYYY-MM-DD) +\newbibmacro*{fulldate}{% + \mkdaterangeiso{}% } +% a) +% If there is no date field in the bib entry, +% we should state there is no date by printing +% a localisation string, e.g. [n.d.]. +% b) +% Order: \renewbibmacro*{date}{% - \iffieldequalstr{endyear}{}% - {\printdate\mbox{\addnbspace}}% - {\printdate}% + \iffieldundef{year} + {\iffieldundef{dateaddon} + {\bibstring[\mkbibbrackets]{nodate}}% + {\printfield{dateaddon}}}% + {\printdate% + \setunit{\dateaddonpunct}% + \printfield{dateaddon}}% } -\newbibmacro*{location+publisher+date}{% +% Based on publisher+location+date macro (defined in standard.bbx) +% Differs only in punctuation +% +% Wrapper for printing normal or full date. 1st argument: +% * empty: \usebibmacro{date} +% * 'full': \usebibmacro{fulldate} +\newbibmacro*{location+publisher+dateform}[1]{% \printlist{location}% \iflistundef{publisher} - {\setunit*{\addcomma\space}}% - {\setunit*{\subtitlepunct}}% + {\setunit*{\addcomma\space}} + {\setunit*{\subtitlepunct}}% <---- different punctuation \printlist{publisher}% \setunit*{\addcomma\space}% - \usebibmacro{date}% + \usebibmacro{#1date}% \newunit} -%numeration +\newbibmacro*{location+publisher+date}{% + \usebibmacro{location+publisher+dateform}{}} + +\newbibmacro*{location+publisher+fulldate}{% + \usebibmacro{location+publisher+dateform}{full}} + +% NUMERATION MACROS \newbibmacro*{serial:numeration}{% \printfield{volume}% \iftoggle{bbx:shortnum} {} - {\setunit*{\addcomma\addspace}}% + {\setunit*{\addcomma\space}}% \printfield{number}% } \newbibmacro*{book:numeration}{% \printfield{volume}% - \setunit*{\addcomma\addspace}% + \setunit*{\addcomma\space}% \printfield{chapter}% } -%series title and number +% SERIES TITLE AND NUMBER MACROS +% Based on series+number macro (defined in standard.bbx) +% Differs only in punctuation \newbibmacro*{series+number}{% \printfield{series}% \setunit*{\addcomma\space}% \printfield{number}% }% -%standard identifiers +% STANDARD IDENTIFIERS MACROS +% Bunch of standard identifiers \newbibmacro*{identifier}{% \iftoggle{bbx:isbn} {\printfield{isan}% @@ -380,32 +590,63 @@ {}% } -%availability and access +% AVAILABILITY AND ACCESS MACROS +% Precedes DOI field with urlfrom localisation string \newbibmacro*{from-doi}{% - \mainlstring{urlfrom}\addspace\printfield{doi}% + \mainlangbibstring{urlfrom}% + \setunit{\addspace}% + \printfield{doi}% } +% Precedes eprint field with urlfrom localisation string +% Use default eprint formatting macro \newbibmacro*{from-eprint}{% - \mainlstring{urlfrom}\addspace\usebibmacro{eprint}% + \mainlangbibstring{urlfrom} + \setunit{\addspace}% + \usebibmacro{eprint}% } +% Macro for availability and access information +% with order of importance: doi, eprint, url \newbibmacro*{availability+access}{% - \iffieldundef{doi} - {\iffieldundef{eprint} - {\iftoggle{bbx:url} - {\printfield{url}} - {}} - {\iftoggle{bbx:eprint} - {\usebibmacro{from-eprint}} - {}}} - {\iftoggle{bbx:doi} - {\usebibmacro{from-doi}} - {}}% + \ifboolexpr{ + test {\iftoggle{bbx:doi}} + and not test {\iffieldundef{doi}} + } + {\usebibmacro{from-doi}}% + {% + \ifboolexpr{ + test {\iftoggle{bbx:eprint}} + and not test {\iffieldundef{eprint}} + } + {\usebibmacro{from-eprint}}% + {\usebibmacro{url}}}% +} + +% The url field of @online entries is always printed +\renewbibmacro*{url}{% + \ifboolexpr{ + test {\iftoggle{bbx:url}} + or test {\ifentrytype{online}} + } + {\printfield{url}}% + {}% } -%location +% The url seen date of @online entries is always printed +\renewbibmacro*{urldate}{% + \ifboolexpr{ + test {\iftoggle{bbx:url}} + or test {\ifentrytype{online}} + } + {\printurldate}% + {}% +} + +% LOCATION MACROS +% Additional location information (e.g. library, repository) \newbibmacro*{location}{% \iffieldundef{library} {} @@ -413,37 +654,79 @@ \printfield{library}}% } -%other +% OTHER MACROS -% redeclare in: bibmacro to use the main document language. -% there was discussion whether literal "In:" should be used, +% Redeclare in: bibmacro to use the main document language. +% There was discussion whether literal "In:" should be used, % but that would look weird in non-latin languages. -% context: https://github.com/michal-h21/biblatex-iso690/pull/33 +% Context: https://github.com/michal-h21/biblatex-iso690/pull/33 +% Force to use the main document language for 'in' localisation string \renewbibmacro*{in:}{% - \printtext{\mainsstring{in}\intitlepunct}% + \mainlangbibstring{in}% + \printunit{\intitlepunct}% } +% Based on 'in:' macro for 'at' localisation string \newbibmacro*{at:}{% - \printtext{\mainsstring{at}\intitlepunct}% + \mainlangbibstring{at}% + \printunit{\intitlepunct}% } -%biblatex core +% BIBLATEX CORE ADJUSTMENTS + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Localisation strings in the main document language +% +% \mainlangbibstring in place of \bibstring +% \mainlangbiblstring in place of \biblstring +% \mainlangbibsstring in place of \bibsstring + +% []{} +\newrobustcmd*{\blx@imc@mainlangbibstring}[2][\@firstofone]{% + \blx@mainlangbibstring{#1}{\abx@str}{#2}} + +\newrobustcmd*{\blx@imc@mainlangbiblstring}[2][\@firstofone]{% + \blx@mainlangbibstring{#1}{abx@lstr}{#2}} + +\newrobustcmd*{\blx@imc@mainlangbibsstring}[2][\@firstofone]{% + \blx@mainlangbibstring{#1}{abx@sstr}{#2}} + +\protected\def\blx@mainlangbibstring#1#2#3{% + {\mainlang% <---- use main document language + \blx@begunit + \blx@hyphenreset + \blx@bibstringsimple + \lowercase{\edef\blx@tempa{#3}}% + \ifcsundef{#2@\blx@tempa} + {\blx@warn@nostring\blx@tempa + \blx@endnounit} + {\blx@imc@ifcapital + {#1{\MakeCapital{\csuse{#2@\blx@tempa}}}} + {#1{\csuse{#2@\blx@tempa}}}% + \blx@endunit}}} + +\blx@regimcs{% + \mainlangbibstring \mainlangbiblstring \mainlangbibsstring +} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% overriding bookpagination to use document main language +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Overriding bookpagination to use document main language +% +% Use new name 'mkpagetotal' over 'mkmlpagetotal' +% Use 'mainlangbibsstring' over 'bibstring' \newrobustcmd*{\blx@imc@mkmlpagetotal}[1][bookpagination]{% \begingroup - \def\blx@tempa{\blx@mkmlpagetotal{page}}% + \def\blx@tempa{\blx@mkmlpagetotal{pagetotal}}% \iffieldundef{#1} {} {\iffieldequalstr{#1}{none} {\def\blx@tempa{\blx@mkmlpagetotal@i}} - {\iffieldbibstring{#1} - {\edef\blx@tempa{\blx@mkmlpagetotal{\thefield{#1}}}} + {\iffieldplusstringbibstring{#1}{total} + {\edef\blx@tempa{\blx@mkmlpagetotal{\thefield{#1}total}}} {\blx@warning@entry{% - Unknown pagination type '\strfield{#1}'}}}}% + Unknown pagination type '\strfield{#1}total'}}}}% \@ifnextchar[%] {\blx@tempa} {\blx@tempa[\@firstofone]}} @@ -457,10 +740,10 @@ \else \aftergroup\@secondoftwo \fi}% - {#2{#3}\ppspace\mainsstring{#1}} - {#2{#3}\ppspace\mainsstring{#1s}}} - {\def\pno{\mainsstring{#1}}% - \def\ppno{\mainsstring{#1s}}% + {#2{#3}\ppspace\mainlangbibsstring{#1}} + {#2{#3}\ppspace\mainlangbibsstring{#1s}}} + {\def\pno{\mainlangbibsstring{#1}}% + \def\ppno{\mainlangbibsstring{#1s}}% #2{#3}}% \endgroup} @@ -468,8 +751,11 @@ \blx@regimcs{\mkmlpagetotal} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% overriding pagination to use document main language +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Overriding pagination to use document main language +% +% Use new name 'mkmlpageprefix' over 'mkpageprefix' +% Use 'mainlangbibsstring' over 'bibstring' \newrobustcmd*{\blx@imc@mkmlpageprefix}[1][pagination]{% \begingroup @@ -488,23 +774,28 @@ \protected\long\def\blx@mkmlpageprefix#1[#2]#3{% \ifnumeral{#3} - {\mainsstring{#1}\ppspace} + {\mainlangbibsstring{#1}\ppspace} {\ifnumerals{#3} - {\mainsstring{#1s}\ppspace} - {\def\pno{\mainsstring{#1}}% - \def\ppno{\mainsstring{#1s}}}}% + {\mainlangbibsstring{#1s}\ppspace} + {\def\pno{\mainlangbibsstring{#1}}% + \def\ppno{\mainlangbibsstring{#1s}}}}% \blx@mkmlpageprefix@i[#2]{#3}} \long\def\blx@mkmlpageprefix@i[#1]#2{#1{#2}\endgroup} \blx@regimcs{\mkmlpageprefix} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% use space punctuation +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Use space punctuation, package option 'spacecolon', +% toggle 'bbx:spcolon', command '\addspcolon' / '\addspacecolon' -% see biblatex2.sty for these macros -\blx@regimcs{% let biblatex know the new macros - \addspcolon }% +% See 'biblatex.sty' for these macros +% +% Let biblatex know the new macro +\blx@regimcs{\addspcolon} +% Define the new macro +\protected\def\blx@imc@addspcolon{\blx@addsppunct{colon}} +% Implement the new macro \def\blx@addsppunct#1{% <---- new name for spaced punctuation %\unspace <----- commented out \ifnum\blx@spacefactor<\blx@sf@threshold@low @@ -520,13 +811,247 @@ \fi% \csuse{blx@pq@#1}}% -%bibliography drivers +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Adds non-breaking space after open date range, e.g. '1492-- ' +% + +\newcommand*{\mkopenendeddaterange}{\mbox{\bibdaterangesep\addnbspace}} + +% Used by '\printdate' +% +% {}{} +\renewrobustcmd*{\mkdaterangefull}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[{#2date}]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + % Optionally print the time after the date + \blx@printtime{#2}{}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateuncertainprint + \dateeraprint{#2year}% + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mkopenendeddaterange}% <---- added \addnbspace + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}% + % Optionally print the time after the date + \blx@printtime{#2}{end}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +% Used by '\printlabeldateextra' in 'iso-authoryear.bbx' +% +% {}{} +\renewrobustcmd*{\mkdaterangefullextra}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[{#2date}]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + % Optionally print the time after the date + \blx@printtime{#2}{}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateuncertainprint + \dateeraprint{#2year}% + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \printtext{\mkopenendeddaterange}}% <---- added \addnbspace + {\printtext{% + \bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}% + % Optionally print the time after the date + \blx@printtime{#2}{end}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +% Other date formats for completeness + +% Avoids error with older biblatex version +% WARNING: of course this means that in older versions the +% date printing macro will not be changed as expected +% this is not an issue for biblatex-iso690 since it only uses +% \mkdaterangefull and \mkdaterangefullextra anyway +\providecommand*{\mkdaterangetrunc@i}{} + +\renewrobustcmd*{\mkdaterangetrunc@i}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[{#2date}]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{}{}{#2day}} + {\csuse{mkbibdate#1}{}{#2month}{#2day}}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mkopenendeddaterange} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +% Avoids error with older biblatex version +% WARNING: of course this means that in older versions the +% date printing macro will not be changed as expected +% this is not an issue for biblatex-iso690 since it only uses +% \mkdaterangefull and \mkdaterangefullextra anyway +\providecommand*{\mkdaterangetruncextra@i}{} + +\renewrobustcmd*{\mkdaterangetruncextra@i}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[{#2date}]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{}{}{#2day}} + {\csuse{mkbibdate#1}{}{#2month}{#2day}}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \printtext{\mkopenendeddaterange}} + {\printtext{% + \bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + + +% {} +\renewrobustcmd*{\mkdaterangeymd}[1]{% + \begingroup + \blx@metadateinfo{#1}% + \iffieldundef{#1year} + {\blx@nounit} + {\printtext[{#1date}]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#1season} + {\blx@ymddate{#1}{}% + % Optionally print the time after the date + \blx@printtime{#1}{}} + {\csuse{mkbibseasondateshort}{#1year}{#1season}}% + \dateuncertainprint + \dateeraprint{#1year}% + \iffieldundef{#1endyear} + {} + {\iffieldequalstr{#1endyear}{} + {\mkopenendeddaterange} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#1season} + {\blx@ymddate{#1}{end}% + % Optionally print the time after the date + \blx@printtime{#1}{end}} + {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}% + \enddateuncertainprint + \dateeraprint{#1endyear}}}}}% + \endgroup} + +% {} +\renewrobustcmd*{\mkdaterangeymdextra}[1]{% + \begingroup + \blx@metadateinfo{#1}% + \iffieldundef{#1year} + {\blx@nounit} + {\printtext[{#1date}]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#1season} + {\blx@ymddate[extradate]{#1}{}% + % Optionally print the time after the date + \blx@printtime{#1}{}} + {\csuse{mkbibseasondateshort}{#1year}{#1season}}% + \dateuncertainprint + \dateeraprint{#1year}% + \iffieldundef{#1endyear} + {} + {\iffieldequalstr{#1endyear}{} + {\mkopenendeddaterange} + {\printtext{% + \bibdaterangesep + \enddatecircaprint + \iffieldundef{#1season} + {\blx@ymddate{#1}{end}% + % Optionally print the time after the date + \blx@printtime{#1}{end}} + {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}% + \enddateuncertainprint + \dateeraprint{#1endyear}}}}}% + \endgroup} + +% BIBLIOGRAPHY DRIVERS \DeclareBibliographyDriver{book}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{multi:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% @@ -562,9 +1087,9 @@ \DeclareBibliographyDriver{periodical}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - % names macro just because of author-year style + % Names macro just because of author-year style \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{periodical:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% @@ -572,7 +1097,7 @@ \printfield{edition}% \newunit\newblock \usebibmacro{location+publisher+date}% - \setunit*{\addcomma\addspace}% + \setunit{\numerationpunct}% \usebibmacro{serial:numeration}% \setunit{\addspace}% \usebibmacro{urldate}% @@ -593,7 +1118,7 @@ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{titles}{}{}% \newunit\newblock \usebibmacro{titles}{journal}{emph}% @@ -602,8 +1127,10 @@ \newunit\newblock \printfield{edition}% \newunit\newblock - \usebibmacro{date} - \setunit*{\addcomma\addspace}% + \iftoggle{bbx:articlepubinfo} + {\usebibmacro{location+publisher+date}} + {\usebibmacro{date}}% + \setunit{\numerationpunct}% \usebibmacro{serial:numeration}% \setunit{\bibpagespunct}% \printfield{pages}% @@ -625,7 +1152,7 @@ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{titles}{}{}% \newunit\newblock \usebibmacro{in:}% @@ -640,7 +1167,7 @@ \usebibmacro{names:subsidiary}% \newunit\newblock \usebibmacro{location+publisher+date}% - \setunit*{\addcomma\addspace}% + \setunit{\addcomma\space}% \usebibmacro{book:numeration}% \setunit{\bibpagespunct}% \printfield{pages}% @@ -667,7 +1194,7 @@ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{titles}{}{}% \newunit\newblock \usebibmacro{in:}% @@ -682,9 +1209,9 @@ \usebibmacro{names:subsidiary}% \newunit\newblock \usebibmacro{location+publisher+date}% - % could number be even used in `incollection`? + % could number be even used in `incollection`? % It should be at some other place in this case - \setunit*{\addcomma\addspace}% + \setunit{\numerationpunct}% \usebibmacro{book:numeration}% \setunit{\bibpagespunct}% \printfield{pages}% @@ -711,7 +1238,7 @@ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{multi:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% @@ -720,7 +1247,7 @@ \newunit\newblock \usebibmacro{names:subsidiary}% \newunit\newblock - \usebibmacro{location+publisher+date}% + \usebibmacro{location+publisher+fulldate}% \newunit \printfield{version}% \setunit{\addspace}% @@ -735,6 +1262,7 @@ \iftoggle{bbx:totalpages} {\printfield{pagetotal}} {}% + \newunit\newblock \printfield{note}% \newunit\newblock \setunit{\bibpagerefpunct}\newblock @@ -745,7 +1273,7 @@ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{titles}{}{emph}% \setunit{\addspace}% \usebibmacro{medium-type}% @@ -760,7 +1288,7 @@ \newunit\newblock \iftoggle{bbx:thesisinfoinnotes} {} - {\printfield{type} + {\printfield{type}% \newunit\newblock \printlist{institution}% \newunit\newblock @@ -786,17 +1314,52 @@ \usebibmacro{pageref}% \usebibmacro{finentry}}% +\DeclareBibliographyDriver{report}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{titles}{}{emph}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \usebibmacro{location+publisher+fulldate}% + \newunit + \printfield{version}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \iffieldundef{type} + {} + {\printfield{type}% + \setunit*{\addcomma\space}}% + \printfield{number}% + \newunit\newblock + \printlist{institution}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \usebibmacro{availability+access}% + \setunit{\addspace}% + \iftoggle{bbx:totalpages} + {\printfield{pagetotal}} + {}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + \DeclareBibliographyDriver{patent}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% - \setunit{\labelnamepunct}\newblock + \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{titles}{}{emph}% \newunit\newblock \usebibmacro{names:subsidiary}% \newunit\newblock - \printfield{classification}% - \newunit\newblock \printlist{location}% \newunit\newblock \iffieldundef{type} @@ -809,15 +1372,15 @@ \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock - \printfield{note}% - \newunit\newblock \usebibmacro{availability+access}% \newunit\newblock + \printfield{note}% + \newunit\newblock \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \usebibmacro{finentry}}% -%bibliography aliases +% BIBLIOGRAPHY ALIASES \DeclareBibliographyAlias{bookinbook}{inbook} \DeclareBibliographyAlias{suppbook}{inbook} @@ -831,8 +1394,9 @@ \DeclareBibliographyAlias{inproceedings}{incollection} \DeclareBibliographyAlias{reference}{collection} \DeclareBibliographyAlias{inreference}{incollection} -\DeclareBibliographyAlias{report}{thesis} \DeclareBibliographyAlias{unpublished}{book} +\DeclareBibliographyAlias{movie}{book} +\DeclareBibliographyAlias{music}{book} \DeclareBibliographyAlias{*}{misc} \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/polish-iso.lbx b/Master/texmf-dist/tex/latex/biblatex-iso690/polish-iso.lbx index 9384b047aeb..b3b7f148daf 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/polish-iso.lbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/polish-iso.lbx @@ -1,5 +1,5 @@ \ProvidesFile{polish-iso.lbx} -[2016/05/13 v0.3.1 biblatex localization] + [2020/03/25 v0.4.0 ISO 690 extended biblatex localization] \InheritBibliographyExtras{polish} \InheritBibliographyStrings{polish} @@ -13,6 +13,18 @@ {dostępne z}}, urlalso = {{dostępne także z}% {dostępne także z}}, +% director = {{}% +% {}},% FIXME: missing +% bydirector = {{}% +% {}},% FIXME: missing +% inventor = {{}% +% {}},% FIXME: missing +% byinventor = {{}% +% {}},% FIXME: missing +% online = {{}% +% {}},% FIXME: missing +% film = {{}% +% {}},% FIXME: missing } \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-iso690/slovak-iso.lbx b/Master/texmf-dist/tex/latex/biblatex-iso690/slovak-iso.lbx index 313a4245b6e..8bd4e4b096c 100644 --- a/Master/texmf-dist/tex/latex/biblatex-iso690/slovak-iso.lbx +++ b/Master/texmf-dist/tex/latex/biblatex-iso690/slovak-iso.lbx @@ -1,5 +1,5 @@ \ProvidesFile{slovak-iso.lbx} -[2017/04/25 v0.3.2 biblatex localization] + [2020/03/25 v0.4.0 ISO 690 extended biblatex localization] \InheritBibliographyExtras{slovak} \InheritBibliographyStrings{slovak} @@ -9,8 +9,20 @@ {v}}, bysupervisor = {{ved\'{u}ci pr\'{a}ce}% {ved\'{u}ci pr\'{a}ce}}, - urlalso = {{dostupn\'{e} tie\v{z} z}% - {dostupn\'{e} tie\v{z} z}}, + urlalso = {{dostupn\'{e} tie\v{z} z}% + {dostupn\'{e} tie\v{z} z}}, + director = {{re\v{z}is\'{e}r}% + {re\v{z}is\'{e}r}}, + bydirector = {{r\'{e}\v{z}ia}% + {r\'{e}\v{z}ia}}, + inventor = {{vyn\'{a}lezca}% + {vyn\'{a}lezca}}, + byinventor = {{vyn\'{a}lezca\addcolon}% + {vyn\'{a}lezca\addcolon}},% FIXME: unsure + online = {{online}% + {online}}, + film = {{film}% + {film}}, } \endinput -- cgit v1.2.3