diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-iso690/iso.bbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-iso690/iso.bbx | 942 |
1 files changed, 753 insertions, 189 deletions
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 <prefix>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: <date> <dateaddon> \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 + +% [<wrapper>]{<string>} +\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' +% +% {<short|long>}{<datetype>} +\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' +% +% {<short|long>}{<datetype>} +\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} + + +% {<datetype>} +\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} + +% {<datetype>} +\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 |