\ProvidesFile{iso.bbx}[2016/05/13 v0.3.1 biblatex bibliography style] \DeclareLanguageMapping{czech}{czech-iso} \DeclareLanguageMapping{english}{english-iso} \DeclareLanguageMapping{slovak}{slovak-iso} \NewBibliographyString{at,bysupervisor,urlalso} %options \newtoggle{bbx:spcolon} \DeclareBibliographyOption{spacecolon}[true]{% \settoggle{bbx:spcolon}{#1}% \typeout{Space colon enabled: #1}} \newtoggle{bbx:totalpages} \DeclareBibliographyOption{pagetotal}[true]{% \settoggle{bbx:totalpages}{#1}% \typeout{Showing total pages enabled: #1}} \newtoggle{bbx:shortnum} \DeclareBibliographyOption{shortnumeration}[true]{% \settoggle{bbx:shortnum}{#1}% \typeout{Short numeration enabled: #1}} \newtoggle{bbx:thesisinfolast} \DeclareBibliographyOption{thesisinfolast}[true]{% \settoggle{bbx:thesisinfolast}{#1}% \typeout{Printing thesis info at the end enabled: #1}} \ExecuteBibliographyOptions{% spacecolon=false ,pagetotal=false ,shortnumeration=false ,thesisinfolast=true %sorting=nyt ,maxnames=9 ,minnames=1 ,citetracker=true %,autolang=other ,date=year ,urldate=iso8601 } \newbibmacro*{begentry}{} \newbibmacro*{finentry}{\finentry} %commands \newcommand\mainsstring[1]{\bibsstring[\mainlang]{#1}} \newcommand\mainlstring[1]{\biblstring[\mainlang]{#1}} \renewcommand*\subtitlepunct{\addspacecolon\addspace} \renewcommand\multinamedelim{\addsemicolon\addspace} \renewcommand\finalnamedelim{\multinamedelim} \newcommand\addspacecolon{% \iftoggle{bbx:spcolon} {\addnbspace\blx@addsppunct{colon}} {\unspace\blx@addsppunct{colon}}% } % Thanks Moewew for sugesting this. Make uppercase names only in biblipgraphy. % Default name format is ALL-CAPS % use something like % \let\lastnameformat=\textsc % to change this \providecommand{\mkbibnamefamily}[1]{#1} \newcommand\lastnameformat[1]{\MakeUppercase{#1}} \AtBeginBibliography{% \renewcommand\mkbibnamelast{\lastnameformat}% \renewcommand\mkbibnamefamily{\lastnameformat}% } \defbibenvironment{bibliography} {\list% {}% {\setlength{\leftmargin}{\bibhang}% \setlength{\itemindent}{-\leftmargin}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}% \renewcommand*{\makelabel}[1]{\hss##1} %\raggedright} }% {\endlist}% {\item}% % %field formats \DeclareFieldFormat*{title}{#1} \DeclareFieldFormat*{subtitle}{#1} \DeclareFieldFormat{volume}{\bibsstring{volume}\addnbspace#1}% volume of a book \DeclareFieldFormat[article,periodical]{volume}{% \iftoggle{bbx:shortnum} {\mkbibbold{#1}} {\bibsstring{jourvol}\addnbspace#1}% volume of a journal } \DeclareFieldFormat*{edition}{% \ifnumeral{#1}% {\mkbibordedition{#1}\addnbspace\bibsstring{edition}}% {\MakeCapital{#1}}% }% \DeclareFieldFormat*{pages}{\mkmlpageprefix[bookpagination]{#1}} \DeclareFieldFormat[article,periodical]{pages}{% \iftoggle{bbx:shortnum} {#1} {\mainsstring{pages}\addspace\printtext{#1}} } \DeclareFieldFormat*{pagetotal}{\mkbibbrackets{\mkmlpagetotal[bookpagination]{#1}}} \DeclareFieldFormat*{number}{\bibsstring{number}\addspace\printtext{#1}} \DeclareFieldFormat[article,periodical]{number}{% \iftoggle{bbx:shortnum} {\mkbibparens{#1}} {\bibsstring{number}\addspace\printtext{#1}} } \DeclareFieldFormat[patent]{number}{#1} \DeclareFieldFormat*{url}{% \iffieldundef{urlyear} {\mainlstring{urlalso}\addcolon\space\url{#1}} {\mainlstring{urlfrom}\addcolon\space\url{#1}} } \DeclareFieldFormat{doi}{% \printtext{DOI}\addcolon\space% \ifhyperref {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} {\nolinkurl{#1}} } \DeclareFieldFormat{howpublished}{\mkbibbrackets{#1}} \DeclareFieldFormat[online]{howpublished}{% \iffieldundef{howpublished} {\mkbibbrackets{online}} {\mkbibbrackets{#1}} } \DeclareFieldFormat{type}{% \ifbibstring{#1} {\mainlstring{#1}} {#1} } \DeclareFieldFormat{supervisor}{% \mainlstring{bysupervisor}\addspace#1} %We must handle more than one isbn and issn \DeclareFieldFormat{isbn}{% %\renewcommand*{\do}[1]{\printtext{ISBN}\addspace#1\adddot\addspace}% \printtext{ISBN}\addspace#1}% \DeclareFieldFormat{issn}{% \renewcommand*{\do}[1]{\printtext{ISSN}\addspace#1\adddot\addspace}% \docsvfield{issn}}% \DeclareFieldFormat{isan}{\printtext{ISAN}\addspace#1} \DeclareFieldFormat{ismn}{\printtext{ISMN}\addspace#1} \DeclareFieldFormat{isrn}{\printtext{ISRN}\addspace#1} \DeclareFieldFormat{iswc}{\printtext{ISWC}\addspace#1} \DeclareFieldFormat{urldate}{\mkbibbrackets{\mainsstring{urlseen}\space#1}} \DeclareFieldFormat{chapter}{\bibstring{chapter}\addnbspace#1\isdot} \DeclareFieldFormat{version}{% \ifnumeral{#1}% {\biblstring{version}\addnbspace#1}% {\MakeCapital{#1}}% } \DeclareFieldFormat{library}{#1} \DeclareFieldFormat{journaltitle}{#1} \DeclareFieldFormat{booktitle}{#1} \DeclareFieldFormat{maintitle}{#1} \DeclareFieldFormat{issuetitle}{#1} \DeclareFieldFormat{journalsubtitle}{#1} \DeclareFieldFormat{booksubtitle}{#1} \DeclareFieldFormat{mainsubtitle}{#1} \DeclareFieldFormat{issuesubtitle}{#1} \DeclareFieldFormat{titleaddon}{\mkbibbrackets{#1}} \DeclareFieldFormat{booktitleaddon}{\mkbibbrackets{#1}} \DeclareFieldFormat{maintitleaddon}{\mkbibbrackets{#1}} \DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1}} %name alias \DeclareNameAlias{default}{last-first} \DeclareNameAlias{supervisor}{first-last} %bibliography macros %names % based on author/editor macro \newbibmacro*{names:primary}{% \ifboolexpr{ test \ifuseauthor and not test {\ifnameundef{author}} } {\usebibmacro{author}} {\usebibmacro{editor}}% \setunit{\addspace}\printfield{nameaddon}% } \newbibmacro*{names:subsidiary}{% \usebibmacro{byeditor}% \newunit% \usebibmacro{bytranslator}% } \renewbibmacro*{editor}{% \ifboolexpr{ test \ifuseeditor and not test {\ifnameundef{editor}} } {\printnames{editor}% \addspace% \mkbibparens{\usebibmacro{editorstrg}}% \clearname{editor}}% {}} \newbibmacro*{thesissupervisor}{% \ifnameundef{supervisor} {} {\printtext{\mainlstring{bysupervisor}}% \addspace% \printnames{supervisor}} } %titles \newbibmacro{titles}[2]{% \ifboolexpr{ test {\iffieldundef{#1title}} and test {\iffieldundef{#1subtitle}}} {} {\printtext[#2]{% \printfield{#1title}% \setunit{\subtitlepunct}% \printfield{#1subtitle}}% \setunit{\addspace}}% \printfield{#1titleaddon}% \newunit% }% \newbibmacro{volume}{% \iffieldundef{volume} {} {\printfield{volume}% \printfield{part}% \setunit{\addcomma\addspace}}% } \newbibmacro{multi:titles}{% \iffieldundef{maintitle} {\iffieldundef{booktitle} {\usebibmacro{titles}{}{emph}} {\usebibmacro{titles}{book}{emph}% \usebibmacro{volume}% \usebibmacro{titles}{}{}}}% {\usebibmacro{titles}{main}{emph}% \usebibmacro{volume}% \usebibmacro{titles}{}{}}% } \newbibmacro{host:titles}{% \iffieldundef{maintitle} {\iffieldundef{booktitle} {} {\usebibmacro{titles}{book}{emph}}} {\usebibmacro{titles}{main}{emph}}% }% \newbibmacro{periodical:titles}{% \usebibmacro{titles}{}{emph}% \newunit% \iffieldundef{issuetitle} {\iffieldundef{journaltitle} {} {\usebibmacro{titles}{journal}{}}} {\usebibmacro{titles}{issue}{}}% } %medium type \newbibmacro*{medium-type}{% \iffieldundef{howpublished} {\iffieldundef{urlyear} {} {\printtext{\mkbibbrackets{online}}}} {\printfield{howpublished}}% } %publication info \newbibmacro{fulldate}{% \printtext{\csname mkbibrangeiso8601\endcsname{\thefield{date}}}% } \renewbibmacro*{date}{% \iffieldequalstr{endyear}{}% {\printdate\mbox{\addnbspace}}% {\printdate}% } \newbibmacro*{location+publisher+date}{% \printlist{location}% \iflistundef{publisher} {\setunit*{\addcomma\space}}% {\setunit*{\subtitlepunct}}% \printlist{publisher}% \setunit*{\addcomma\space}% \usebibmacro{date}% \newunit} %numeration \newbibmacro*{serial:numeration}{% \printfield{volume}% \iftoggle{bbx:shortnum} {} {\setunit*{\addcomma\addspace}}% \printfield{number}% } \newbibmacro*{book:numeration}{% \printfield{volume}% \setunit*{\addcomma\addspace}% \printfield{chapter}% } %series title and number \newbibmacro*{series+number}{% \printfield{series}% \setunit*{\addcomma\space}% \printfield{number}% }% %standard identifiers \newbibmacro*{identifier}{% \printfield{isan}% \newunit% \printfield{isbn}% \newunit% \printfield{ismn}% \newunit% \printfield{isrn}% \newunit% \printfield{issn}% \newunit% \printfield{iswc}% \newunit% } %availability and access \newbibmacro*{from-doi}{% \mainlstring{urlfrom}\addspace\printfield{doi}% } \newbibmacro*{from-eprint}{% \mainlstring{urlfrom}\addspace\usebibmacro{eprint}% } \newbibmacro*{availability+access}{% \iffieldundef{doi} {\iffieldundef{eprint} {\printfield{url}} {\usebibmacro{from-eprint}}} {\usebibmacro{from-doi}}% } %location \newbibmacro*{location}{% \iffieldundef{library} {} {\usebibmacro{at:}% \printfield{library}}% } %other % 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 \renewbibmacro*{in:}{% \printtext{\mainsstring{in}\intitlepunct}% } \newbibmacro*{at:}{% \printtext{\mainsstring{at}\intitlepunct}% } %biblatex core %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % overriding bookpagination to use document main language \newrobustcmd*{\blx@imc@mkmlpagetotal}[1][bookpagination]{% \begingroup \def\blx@tempa{\blx@mkmlpagetotal{page}}% \iffieldundef{#1} {} {\iffieldequalstr{#1}{none} {\def\blx@tempa{\blx@mkmlpagetotal@i}} {\iffieldbibstring{#1} {\edef\blx@tempa{\blx@mkmlpagetotal{\thefield{#1}}}} {\blx@warning@entry{% Unknown pagination type '\strfield{#1}'}}}}% \@ifnextchar[%] {\blx@tempa} {\blx@tempa[\@firstofone]}} \protected\long\def\blx@mkmlpagetotal#1[#2]#3{% \ifnumeral{#3} {\setbox\@tempboxa=\hbox{% \blx@tempcnta0#3\relax \ifnum\blx@tempcnta=\@ne \aftergroup\@firstoftwo \else \aftergroup\@secondoftwo \fi}% {#2{#3}\ppspace\mainsstring{#1}} {#2{#3}\ppspace\mainsstring{#1s}}} {\def\pno{\mainsstring{#1}}% \def\ppno{\mainsstring{#1s}}% #2{#3}}% \endgroup} \long\def\blx@mkmlpagetotal@i[#1]#2{#1{#2}\endgroup} \blx@regimcs{\mkmlpagetotal} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % overriding pagination to use document main language \newrobustcmd*{\blx@imc@mkmlpageprefix}[1][pagination]{% \begingroup \def\blx@tempa{\blx@mkmlpageprefix{page}}% \iffieldundef{#1} {} {\iffieldequalstr{#1}{none} {\def\blx@tempa{\blx@mkmlpageprefix@i}} {\iffieldbibstring{#1} {\edef\blx@tempa{\blx@mkmlpageprefix{\thefield{#1}}}} {\blx@warning@entry{% Unknown pagination type '\strfield{#1}'}}}}% \@ifnextchar[%] {\blx@tempa} {\blx@tempa[\@firstofone]}} \protected\long\def\blx@mkmlpageprefix#1[#2]#3{% \ifnumeral{#3} {\mainsstring{#1}\ppspace} {\ifnumerals{#3} {\mainsstring{#1s}\ppspace} {\def\pno{\mainsstring{#1}}% \def\ppno{\mainsstring{#1s}}}}% \blx@mkmlpageprefix@i[#2]{#3}} \long\def\blx@mkmlpageprefix@i[#1]#2{#1{#2}\endgroup} \blx@regimcs{\mkmlpageprefix} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % use space punctuation % see biblatex2.sty for these macros \blx@regimcs{% let biblatex know the new macros \addspcolon }% \def\blx@addsppunct#1{% <---- new name for spaced punctuation %\unspace <----- commented out \ifnum\blx@spacefactor<\blx@sf@threshold@low \csuse{blx@qp@#1}\csuse{abx@#1}% \else% \ifnum\blx@spacefactor>\blx@sf@threshold@high \csuse{blx@qp@#1}\csuse{abx@#1}% \else% \ifcsdef{blx@pp@\the\csname blx@sf@#1\endcsname @\blx@spacefactor}% {\csuse{blx@qp@#1}\csuse{abx@#1}}% {\csuse{blx@qp@#1}}%% \fi% \fi% \csuse{blx@pq@#1}}% %bibliography drivers \DeclareBibliographyDriver{book}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% \setunit{\labelnamepunct}\newblock% \usebibmacro{multi:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% \newunit\newblock% \printfield{edition}% \newunit\newblock% \usebibmacro{names:subsidiary}% \newunit\newblock% \usebibmacro{location+publisher+date}% \newunit% \printfield{version}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \usebibmacro{series+number}% \newunit\newblock% \usebibmacro{identifier}% \newunit\newblock% \usebibmacro{availability+access}% \newunit\newblock% \usebibmacro{location}% \setunit{\addspace}% \iftoggle{bbx:totalpages} {\printfield{pagetotal}} {}% \newunit\newblock% \printfield{note}% \newunit\newblock% \setunit{\bibpagerefpunct}\newblock% \usebibmacro{pageref}% \usebibmacro{finentry}}% \DeclareBibliographyDriver{periodical}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% % names macro just because of author-year style \usebibmacro{names:primary}% \setunit{\labelnamepunct}\newblock%% \usebibmacro{periodical:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% \newunit\newblock \printfield{edition}% \newunit\newblock% \usebibmacro{location+publisher+date}% \setunit*{\addcomma\addspace}% \usebibmacro{serial:numeration}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \usebibmacro{identifier}% \newunit\newblock% \usebibmacro{availability+access}% \newunit\newblock% \usebibmacro{location}% \newunit\newblock% \printfield{note}% \newunit\newblock% \setunit{\bibpagerefpunct}\newblock% \usebibmacro{pageref}% \usebibmacro{finentry}}% \DeclareBibliographyDriver{article}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% \setunit{\labelnamepunct}\newblock% \usebibmacro{titles}{}{}% \newunit\newblock% \usebibmacro{titles}{journal}{emph}% \setunit{\addspace}% \usebibmacro{medium-type}% \newunit\newblock% \printfield{edition}% \newunit\newblock% \usebibmacro{date} \setunit*{\addcomma\addspace}% \usebibmacro{serial:numeration}% \setunit{\bibpagespunct}% \printfield{pages}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \usebibmacro{identifier}% \newunit\newblock% \usebibmacro{availability+access}% \newunit\newblock% \usebibmacro{location}% \newunit\newblock% \printfield{note}% \setunit{\bibpagerefpunct}\newblock% \usebibmacro{pageref}%% \usebibmacro{finentry}}% \DeclareBibliographyDriver{inbook}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% \setunit{\labelnamepunct}\newblock% \usebibmacro{titles}{}{}% \newunit\newblock% \usebibmacro{in:}% \printnames{bookauthor}% \newunit\newblock% \usebibmacro{host:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% \newunit\newblock% \printfield{edition}% \newunit\newblock% \usebibmacro{names:subsidiary}% \newunit\newblock% \usebibmacro{location+publisher+date}% \setunit*{\addcomma\addspace}% \usebibmacro{book:numeration}% \setunit{\bibpagespunct}% \printfield{pages}% \newunit% \printfield{version}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \usebibmacro{series+number}% \newunit\newblock% \usebibmacro{identifier}% \newunit\newblock% \usebibmacro{availability+access}% \newunit\newblock% \usebibmacro{location}% \newunit\newblock% \printfield{note}% \newunit\newblock% \setunit{\bibpagerefpunct}\newblock% \usebibmacro{pageref}% \usebibmacro{finentry}}% \DeclareBibliographyDriver{incollection}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% \setunit{\labelnamepunct}\newblock% \usebibmacro{titles}{}{}% \newunit\newblock% \usebibmacro{in:}% \usebibmacro{editor}% \newunit\newblock% \usebibmacro{host:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% \newunit\newblock% \printfield{edition}% \newunit\newblock% \usebibmacro{names:subsidiary}% \newunit\newblock% \usebibmacro{location+publisher+date}% % could number be even used in `incollection`? % It should be at some other place in this case \setunit*{\addcomma\addspace}% \usebibmacro{book:numeration}% \setunit{\bibpagespunct}% \printfield{pages}% \newunit% \printfield{version}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \usebibmacro{series+number}% \newunit\newblock% \usebibmacro{identifier}% \newunit\newblock% \usebibmacro{availability+access}% \newunit\newblock% \usebibmacro{location}% \newunit\newblock% \printfield{note}% \newunit\newblock% \setunit{\bibpagerefpunct}\newblock% \usebibmacro{pageref}% \usebibmacro{finentry}}% \DeclareBibliographyDriver{online}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% \setunit{\labelnamepunct}\newblock% \usebibmacro{multi:titles}% \setunit{\addspace}% \usebibmacro{medium-type}% \newunit\newblock% \printfield{edition}% \newunit\newblock% \usebibmacro{names:subsidiary}% \newunit\newblock% \usebibmacro{location+publisher+date}% \newunit% \printfield{version}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \usebibmacro{series+number}% \newunit\newblock% \usebibmacro{identifier}% \newunit\newblock% \usebibmacro{availability+access}% \setunit{\addspace}% \iftoggle{bbx:totalpages} {\printfield{pagetotal}} {}% \printfield{note}% \newunit\newblock% \setunit{\bibpagerefpunct}\newblock% \usebibmacro{pageref}%% \usebibmacro{finentry}}% \DeclareBibliographyDriver{thesis}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{names:primary}% \setunit{\labelnamepunct}\newblock%% \usebibmacro{titles}{}{emph}% \setunit{\addspace}% \usebibmacro{medium-type}% \newunit\newblock% \usebibmacro{location+publisher+date}% \newunit% \printfield{version}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \usebibmacro{identifier}% \newunit\newblock% \iftoggle{bbx:thesisinfolast} {} {\printfield{type} \newunit\newblock% \printlist{institution}% \newunit\newblock% \usebibmacro{thesissupervisor}}% \newunit\newblock% \usebibmacro{availability+access} \setunit{\addspace}% \iftoggle{bbx:totalpages} {\printfield{pagetotal}} {}% \newunit\newblock% \iftoggle{bbx:thesisinfolast} {\printfield{type} \newunit\newblock% \printlist{institution}% \newunit\newblock% \usebibmacro{thesissupervisor}} {}% \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%% \usebibmacro{titles}{}{emph}% \newunit\newblock% \usebibmacro{names:subsidiary}% \newunit\newblock% \printfield{classification}% \newunit\newblock% \printlist{location}% \newunit\newblock% \iffieldundef{type} {} {\printfield{type}% \setunit*{\addcomma\space}}% \printfield{number}% \newunit\newblock% \usebibmacro{fulldate}% \setunit{\addspace}% \usebibmacro{urldate}% \newunit\newblock% \printfield{note}% \newunit\newblock% \usebibmacro{availability+access}% \newunit\newblock% \setunit{\bibpagerefpunct}\newblock% \usebibmacro{pageref}% \usebibmacro{finentry}}% %bibliography aliases \DeclareBibliographyAlias{bookinbook}{inbook} \DeclareBibliographyAlias{suppbook}{inbook} \DeclareBibliographyAlias{booklet}{book} \DeclareBibliographyAlias{collection}{book} \DeclareBibliographyAlias{suppcollection}{incollection} \DeclareBibliographyAlias{manual}{book} \DeclareBibliographyAlias{misc}{book} \DeclareBibliographyAlias{suppperiodical}{article} \DeclareBibliographyAlias{proceedings}{collection} \DeclareBibliographyAlias{inproceedings}{incollection} \DeclareBibliographyAlias{reference}{collection} \DeclareBibliographyAlias{inreference}{incollection} \DeclareBibliographyAlias{report}{thesis} \DeclareBibliographyAlias{unpublished}{book} \DeclareBibliographyAlias{*}{misc} \endinput % vim: ft=tex