From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- .../biblatex-contrib/biblatex-phys/phys.bbx | 500 +++++++++++++++++++++ 1 file changed, 500 insertions(+) create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx') diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx new file mode 100644 index 0000000000..7b69506a5d --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx @@ -0,0 +1,500 @@ +%% --------------------------------------------------------------- +%% biblatex-phys --- A biblatex implementation of the AIP and APS +%% bibliography style +%% Maintained by Joseph Wright +%% E-mail: joseph.wright@morningstar2.co.uk +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% --------------------------------------------------------------- +%% + +\ProvidesFile{phys.bbx}[2018/10/19 v1.1 biblatex bibliography style] + +% Load the standard style to avoid copy-pasting unnecessary material +\RequireBibliographyStyle{numeric-comp} + +% New options +\newtoggle{bbx:articletitle} +\newtoggle{bbx:chaptertitle} +\newtoggle{bbx:pageranges} +\DeclareBibliographyOption{articletitle}[true]{% + \settoggle{bbx:articletitle}{#1}% +} +\DeclareBibliographyOption{chaptertitle}[true]{% + \settoggle{bbx:chaptertitle}{#1}% +} +\DeclareBibliographyOption{pageranges}[true]{% + \settoggle{bbx:pageranges}{#1}% +} +\DeclareBibliographyOption{biblabel}{% + \ifstrequal{#1}{brackets} + {% + \DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{##1}}% + \setlength{\biblabelsep}{10 pt}% + } + {% + \DeclareFieldFormat{labelnumberwidth}{\mkbibsuperscript{##1}}% + \setlength{\biblabelsep}{0 pt}% + }% +} + +% Alter settings that carry through from biblatex +\ExecuteBibliographyOptions + { + articletitle = true , + chaptertitle = true , + biblabel = superscript, + doi = false , + eprint = false , + giveninits = true , + isbn = false , + maxnames = 999 , + maxcitenames = 2 , + pageranges = true , + url = false + } + +% Custom field formats +\DeclareFieldFormat[inproceedings]{booktitle}{#1} +\DeclareFieldFormat{eprint:arxiv}{% + \ifhyperref + {\href{https://arxiv.org/\abx@arxivpath/#1}{% + arXiv\addcolon + \nolinkurl{#1}% + \iffieldundef{eprintclass} + {} + {\addspace\UrlFont{\mkbibbrackets{\thefield{eprintclass}}}}}} + {arXiv\addcolon + \nolinkurl{#1}% + \iffieldundef{eprintclass} + {} + {\addspace\UrlFont{\mkbibbrackets{\thefield{eprintclass}}}}}} +\DeclareFieldAlias{eprint:arXiv}{eprint:arxiv} +\DeclareFieldFormat[online]{date}{\mkbibparens{#1}\nopunct} +\DeclareFieldFormat{doi}{% + \ifhyperref + {\href{https://doi.org/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}% +} +\DeclareFieldFormat{doi/url-link}{% + \ifhyperref + {% + \iffieldundef{doi} + {% + \iffieldundef{url} + {\@firstofone} + {\href{\thefield{url}}}% + } + {\href{https://doi.org/\thefield{doi}}}% + } + {\@firstofone}% + {#1}% +} +\DeclareFieldFormat{journaltitle}{#1\isdot} +\DeclareFieldFormat[article]{pages}{% + \iftoggle{bbx:pageranges}{#1}{\mkfirstpage{#1}}% +} +\DeclareFieldFormat[article,inproceedings,patent]{title}{% + \iftoggle{bbx:articletitle} + {\mkbibquote{#1\isdot}} + {}% +} +\DeclareFieldFormat[incollection]{title}{% + \iftoggle{bbx:chaptertitle} + {\mkbibquote{#1\isdot}} + {}% +} +\DeclareFieldFormat{related:translatedas}{\mkbibbrackets{#1}} +\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}} +\DeclareFieldFormat{url}{\url{#1}} +\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}} +\DeclareFieldFormat{year}{\mkbibparens{#1}} + +% Simple modifications to punctuation, etc. +\renewcommand*{\begrelateddelim}{\addsemicolon\space}% +\renewcommand*{\intitlepunct}{\addspace} +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\newunitpunct}{\addcomma\space} + +% Bibliography strings +\DefineBibliographyStrings{english}{% + byeditor = edited by, + chapter = Chap\adddot, + volume = Vol\adddot +} + +% Bibliography macros +\renewbibmacro*{chapter+pages}{% + \setunit{\addspace}% + \printfield{chapter}% + \setunit{\bibpagespunct}% + \printfield{pages}% + \newunit +} + +\renewbibmacro*{institution+location+date}{% + \setunit{\addspace}% + \printtext[parens]{% + \printlist{institution}% + \newunit + \printlist{location}% + \newunit + \usebibmacro{date}% + }% +} + +\renewbibmacro*{journal+issuetitle}{% + \usebibmacro{journal}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \usebibmacro{volume+number+eid}% + \setunit{\addspace}% + \usebibmacro{issue}% + \newunit +} + +\renewbibmacro*{maintitle+booktitle}{% + \printtext[doi/url-link]{% + \iffieldundef{maintitle} + {} + {% + \usebibmacro{maintitle}% + \newunit + }% + \usebibmacro{booktitle}% + }% + \newunit\newblock + \iffieldundef{volume} + {} + {% + \printfield{volume}% + \clearfield{volume}% + \printfield{part}% + \clearfield{part}% + }% + \newunit +} + +\newbibmacro*{organization+date}{% + \setunit{\addspace}% + \printtext[parens]{% + \printlist{organization}% + \newunit + \usebibmacro{date}% + }% + \newunit +} + +\renewbibmacro*{publisher+location+date}{% + \setunit{\addspace}% + \printtext[parens]{% + \printlist{publisher}% + \newunit + \printlist{location}% + \newunit + \usebibmacro{date}% + }% + \newunit +} + +\renewbibmacro*{volume+number+eid}{% + \printfield{volume}% + \newunit + \printfield{eid}% +} + +% New bibliography drivers, using the required order of fields. These +% are mainly copied from standard.bbx then modified. +\DeclareBibliographyDriver{article}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{bytranslator+others}% + \newunit\newblock + \printfield{version}% + \newunit\newblock + \printtext[doi/url-link]{% + \usebibmacro{journal+issuetitle}% + \newunit + \usebibmacro{byeditor+others}% + \newunit + \usebibmacro{note+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{issn}} + {}% + \setunit{\addspace}% + \printfield{year}% + }% + \setunit{\addspace}% + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}% +} + +\DeclareBibliographyDriver{inbook}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{bybookauthor}% + \setunit*{\addcomma\space}% + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \usebibmacro{related}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{inproceedings}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{organization+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}% +} + +\DeclareBibliographyDriver{patent}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \printfield{type}% + \setunit*{\addspace}% + \printfield{number}% + \iflistundef{location} + {} + {\setunit*{\addspace}% + \printtext[parens]{% + \printlist[][-\value{listtotal}]{location}}}% + \setunit{\addspace}% + \printtext[parens]{% + \usebibmacro{byholder}% + \newunit + \usebibmacro{date}% + }% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}% +} + +% Deal with repeated names or journals in entry sets: based on +% http://tex.stackexchange.com/a/63013 +\DeclareBibliographyDriver{set}{% + \entryset + {% + \ifbool{bbx:subentry} + {\printfield[bibentrysetcount]{entrysetcount}% + \setunit*{\addnbspace}} + {}% + } + {% + \ifdef{\bbx@set@journal} + {} + {\savefield{journaltitle}{\bbx@set@journal}}% + \ifdef{\bbx@set@namehash} + {} + {\savefield{namehash}{\bbx@set@namehash}}% + }% + \newunit\newblock + \usebibmacro{setpageref}% + \finentry + \global\undef\bbx@set@namehash + \global\undef\bbx@set@journal +} + +\renewbibmacro*{author}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {% + \iffieldequals{namehash}{\bbx@set@namehash} + {\nopunct} + {% + \global\undef\bbx@set@namehash + \printnames{author}% + \iffieldundef{authortype} + {} + {% + \setunit{\addcomma\space}% + \usebibmacro{authorstrg}% + }% + }% + \iffieldundef{collaboration} + {} + {\printfield[parens]{collaboration}}} + {}% +} + + +\renewbibmacro*{journal}{% + \iffieldundef{journaltitle} + {} + {% + \iffieldequals{journaltitle}{\bbx@set@journal} + {\bibstring[\mkibid]{ibidem}} + {% + \global\undef\bbx@set@journal + \printtext[journaltitle]{% + \printfield[noformat]{journaltitle}% + \setunit{\subtitlepunct}% + \printfield[noformat]{journalsubtitle}% + }% + }% + }% +} + +\newbibmacro*{related:translatedas}[1]{% + \entrydata{#1}{% + \usebibmacro{journal+issuetitle}% + \newunit + \usebibmacro{note+pages}% + \newunit\newblock + \setunit{\addspace}% + \printfield{year}% + \setunit{\addspace}% + \iffieldundef{pages} + {% + \printfield{doi}% + \clearfield{doi}% + }% + {}% + \usebibmacro{doi+eprint+url}% + }% +} + + +%% +%% Copyright (C) 2012-2014,2016,2018 by +%% Joseph Wright +%% +%% It may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License (LPPL), either version 1.3c of +%% this license or (at your option) any later version. The latest +%% version of this license is in the file: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% This work is "maintained" (as per LPPL maintenance status) by +%% Joseph Wright. +%% +%% This work consists of the files biblatex-phys.bib, +%% biblatex-phys.tex, +%% phys.bbx and +%% phys.cbx, +%% and the derived file biblatex-phys.pdf. +%% +%% +%% End of file `phys.bbx'. -- cgit v1.2.3