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-ieee/ieee.bbx | 817 +++++++++++++++++++++ 1 file changed, 817 insertions(+) create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx') diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx new file mode 100644 index 0000000000..ac90ffa973 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx @@ -0,0 +1,817 @@ +%% --------------------------------------------------------------- +%% biblatex-ieee --- A biblatex implementation of the IEEE +%% 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{ieee.bbx}[2019/06/19 v1.3a biblatex bibliography style] + +% Load the standard style to avoid copy-pasting unnecessary material +\RequireBibliographyStyle{numeric-comp} + +% An option that carries through from author-year styles +\DeclareBibliographyOption[boolean]{dashed}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{pagetracker}% + \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} + {\renewbibmacro*{bbx:savehash}{}}} + +% Alter settings that carry through from biblatex +\ExecuteBibliographyOptions{ + giveninits, + maxnames = 999, + minnames = 3, + sorting = none +} +\uspunctuation + +% Load language-specific customizations +\DeclareLanguageMapping{magyar}{magyar-ieee} +% If more language-specific customizations besides magyar should get +% added, the above explicit mapping per language can be replaced with: +% \DeclareLanguageMappingSuffix{-ieee} + +% Custom field formats +\DeclareFieldFormat[article]{number}{\bibstring{number}\addnbspace#1} +\DeclareFieldFormat[patent]{number}{\mkonepagegrouped{#1}} +\DeclareFieldFormat{pages}{% + \mkpageprefix[bookpagination][\mkpagegrouped]{#1}% +} +\DeclareFieldFormat{sentencecase}{\bbx@colon@search{\MakeSentenceCase*}{#1}} +\DeclareFieldFormat[book,inbook,incollection,inproceedings]{series} + {\bibstring{jourser}\addnbspace#1} +\DeclareFieldFormat[online]{title}{#1\isdot} +\DeclareFieldFormat[report]{title}{\mkbibquote{#1\isdot}} +\DeclareFieldFormat{url}{\bibstring{url}\addcolon\space\url{#1}} +\DeclareFieldFormat*{volume} + {\bibstring{volume}\addnbspace#1} +\DeclareFieldFormat[article,periodical]{volume} + {\bibstring{jourvol}\addnbspace#1} + +% Simple modifications to punctuation, etc. +\renewcommand*\bibnamedash{\textemdash\textemdash} +\renewcommand*\intitlepunct{\addspace} +\renewcommand*\newunitpunct{\addcomma\addspace} + +% Bibliography strings +\NewBibliographyString{patentjp} +\NewBibliographyString{presentedat} + +\DefineBibliographyStrings{english}{ + andothers = \mkbibemph{et al\adddot} , + chapter = ch\adddot , + editor = Ed\adddot , + editors = Eds\adddot , + mathesis = Master's thesis , + patentjp = Japanese Patent , + patentus = U\adddot S\adddot\addspace Patent , + presentedat = presented at the\addspace , + techreport = Tech\adddot\addspace Rep\adddot , + url = [Online]\adddot\addspace Available , +} + +\DefineBibliographyStrings{english}{ + june = Jun\adddot , + july = Jul\adddot , + september = Sep\adddot , +} + +% Support for dashed author name replacement +\InitializeBibliographyStyle{\global\undef\bbx@lasthash} + +\newbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}} + +% Bibliography macros +\renewbibmacro*{author}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {% + \iffieldequals{fullhash}{\bbx@lasthash} + {\bibnamedash\addcomma\space} + {\printnames{author}}% + \usebibmacro{bbx:savehash}% + \iffieldundef{authortype} + {} + {% + \setunit{\addcomma\space}% + \usebibmacro{authorstrg}% + }% + } + {\global\undef\bbx@lasthash}% +} + +\renewbibmacro*{bybookauthor}{% + \ifnamesequal{author}{bookauthor} + {} + {% + \iffieldundef{bookauthor} + {} + {% + \printnames{bookauthor}% + \newunit + }% + }% +} + +\renewbibmacro*{byeditor+others}{% + \ifnameundef{editor} + {} + {% + \usebibmacro{editor}% + \setunit{\addspace}% + \printnames[byeditor]{editor}% + \clearname{editor}% + \newunit + }% + \usebibmacro{byeditorx}% + \usebibmacro{bytranslator+others}% +} + +\renewbibmacro*{doi+eprint+url}{% + \setunit{\adddot\addspace}% + \iftoggle{bbx:doi} + {\printfield{doi}} + {}% + \setunit{\adddot\addspace}% + \iftoggle{bbx:eprint} + {\usebibmacro{eprint}} + {}% + \setunit{\adddot\addspace}% + \iftoggle{bbx:url} + {\usebibmacro{url+urldate}} + {}% +} + +\renewbibmacro*{event+venue+date}{% + \iffieldundef{eventtitle} + {} + {% + \bibstring{presentedat}% + \printfield{eventtitle}% + }% + \ifboolexpr{ + test {\iffieldundef{venue}} + and + test {\iffieldundef{eventyear}} + } + {} + {\setunit*{\addspace}% + \printtext[parens]{% + \printfield{venue}% + \setunit*{\addcomma\space}% + \printeventdate}}% + \newunit +} + +\newbibmacro*{institution+location}{% + \printlist{institution}% + \newunit + \printlist{location}% + \newunit +} + +\renewbibmacro*{institution+location+date}{% + \printlist{institution}% + \newunit + \printlist{location}% + \newunit + \usebibmacro{date}% + \newunit +} + +\renewbibmacro*{issue+date}{% + \printtext{% + \iffieldundef{issue} + {\usebibmacro{date}} + {% + \printfield{issue}% + \setunit*{\addspace}% + \usebibmacro{date}% + }% + }% + \newunit + \usebibmacro{issue}% + \newunit +} + +\renewbibmacro*{journal}{% + \iffieldundef{journaltitle} + {} + {% + \printtext[journaltitle]{% + \printfield[titlecase]{journaltitle}% + \printfield[titlecase]{journalsubtitle}% + }% + }% + \midsentence +} + +\renewbibmacro*{journal+issuetitle}{% + \usebibmacro{journal}% + \newunit + \iffieldundef{series} + {} + {% + \newunit + \printfield{series}% + \newunit + }% + \usebibmacro{volume+number+eid}% + \setunit{\addspace}% +} + +\renewbibmacro*{maintitle+booktitle}{% + \iffieldundef{maintitle} + {} + {% + \usebibmacro{maintitle}% + \newunit\newblock + }% + \usebibmacro{booktitle}% + \newunit +} + +\newbibmacro*{maintitle+booktitle(inproceedings)}{% + \iffieldundef{maintitle} + {% + \iffieldundef{booktitle} + {} + {% + \usebibmacro{in:}% + \usebibmacro{maintitle+booktitle}% + \clearfield{eventtitle}% + \clearfield{number}% + }% + } + {% + \usebibmacro{in:}% + \usebibmacro{maintitle+booktitle}% + \clearfield{eventtitle}% + \clearfield{number}% + }% +} + +\renewbibmacro*{maintitle+title}{% + \iffieldsequal{maintitle}{title} + {% + \clearfield{maintitle}% + \clearfield{mainsubtitle}% + \clearfield{maintitleaddon}% + } + {% + \iffieldundef{maintitle} + {} + {% + \usebibmacro{maintitle}% + \newunit\newblock + }% + }% + \usebibmacro{title-in-maintitle}% + \newunit +} + +\newbibmacro*{pages}{% + \setunit{\bibpagespunct}% + \printfield{pages}% +} + +\renewbibmacro*{title}{% + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + {% + \printtext[title]{% + \printfield[sentencecase]{title}% + \setunit{\subtitlepunct}% + \printfield[sentencecase]{subtitle}% + }% + \newunit + }% + \printfield{titleaddon}% +} + +\newbibmacro*{title-in-maintitle}{% + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + {% + \printtext[title]{% + \printfield[titlecase]{title}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}% + }% + \newunit + }% + \printfield{titleaddon}% +} + +\renewbibmacro*{volume+number+eid}{% + \printfield{volume}% + \newunit + \printfield{number}% + \newunit + \printfield{eid}% +} + +\newbibmacro*{volume+part}{% + \iffieldundef{volume} + {} + {% + \printfield{volume}% + \printfield{part}% + \setunit{\addcolon\space}% + }% +} + +% Specialised functions for manipulating data, where the biblatex +% kernel does not provide a suitable function. +\newcommand*{\mkpagegrouped}[1]{% + \mkpagegrouped@aux#1\bibrangedash&% +} + +\newcommand*{\mkpagegrouped@aux}{} +\def\mkpagegrouped@aux#1\bibrangedash#2&{% + \mkonepagegrouped{#1}% + \ifblank{#2} + {} + {% + \bibrangedash + \mkpagegrouped@second#2&% + }% +} + +\newcommand*{\mkonepagegrouped}[1]{% + \ifinteger{#1} + {% + \mkpagegrouped@ifmorethanfour{#1} + {\mkpagegrouped@separate{}#1\@empty\@empty\@empty} + {#1}% + } + {#1}% +} + +\newcommand*{\mkpagegrouped@second}{} +\def\mkpagegrouped@second#1\bibrangedash&{% + \mkpagegrouped@second@auxi#1\bibrangessep&% +} + +\newcommand*{\mkpagegrouped@second@auxi}{} +\def\mkpagegrouped@second@auxi#1\bibrangessep#2&{% + \mkonepagegrouped{#1}% + \ifblank{#2} + {} + {% + \bibrangessep + \mkpagegrouped@second@auxii#2&% + }% +} + +\newcommand*{\mkpagegrouped@second@auxii}{} +\def\mkpagegrouped@second@auxii#1\bibrangessep&{% + \mkpagegrouped{#1}% +} + +\newcommand*{\mkpagegrouped@ifmorethanfour}[1]{% + \mkpagegrouped@ifmorethanfour@aux#1\@empty\@empty\@empty\@empty + \@empty\@nil +} + +\newcommand*{\mkpagegrouped@ifmorethanfour@aux}{} +\def\mkpagegrouped@ifmorethanfour@aux#1#2#3#4#5\@nil{% + \ifx\@empty#5\@empty + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi +} + +\newcommand*{\mkpagegrouped@separate}[4]{% + \ifx\@empty#2\@empty + \mkpagegrouped@print#1\relax + \else + \ifx\@empty#3\@empty + \mkpagegrouped@print\@empty\@empty#1#2\relax + \else + \ifx\@empty#4\@empty + \mkpagegrouped@print\@empty#1#2#3\relax + \else + \mkpagegrouped@separate@aux{#1#2#3#4}% + \fi + \fi + \fi +} + +\newcommand*{\bbx@digits@separate@aux}{} +\def\mkpagegrouped@separate@aux#1\fi\fi\fi{% + \fi\fi\fi\mkpagegrouped@separate{#1}% +} + +\newcommand*{\mkpagegrouped@print}[4]{% + \ifblank{#1}{}{#1}% + #2#3% + \ifx#4\relax + \else + \addnbthinspace + \expandafter\mkpagegrouped@print\expandafter#4% + \fi +} + +% {} {} +\newcommand*{\bbx@colon@search}[2]{% + \bbx@colon@search@auxi\empty#2: \stop{#1}% +} +\long\def\bbx@colon@search@auxi#1: #2\stop#3{% + \expandafter\bbx@colon@search@auxii\expandafter{#1}{#3}% + \ifblank{#2} + {} + {% + : % + \bbx@colon@search@auxi\empty#2\stop{#3}% + }% +} +\newcommand\bbx@colon@search@auxii[2]{#2{#1}} + +% 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}% + \newunit + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{bytranslator+others}% + \newunit\newblock + \printfield{version}% + \newunit\newblock + \usebibmacro{journal+issuetitle}% + \newunit + \usebibmacro{byeditor+others}% + \newunit + \usebibmacro{pages}% + \newunit + \usebibmacro{issue+date}% + \newunit + \printfield{note}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{issn}} + {}% + \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{book}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{maintitle+title}% + \newunit + \printlist{language}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \setunit{\adddot\addspace}% + \newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{volume+part}% + \newunit + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \printfield{note}% + \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{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}% + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \setunit{\adddot\addspace}% + \newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{volume+part}% + \newunit + \usebibmacro{chapter+pages}% + \newunit\newblock + \printfield{note}% + \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{incollection}{% + \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{series+number}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \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 + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \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{maintitle+booktitle(inproceedings)}% + \midsentence + \newunit\newblock + \usebibmacro{event+venue+date}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \newunit\newblock + \usebibmacro{volume+part}% + \newunit + \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 + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{online}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\adddot\addspace}% + \printtext[parens]{\usebibmacro{date}}% + \setunit{\adddot\addspace}% + \usebibmacro{title}% + \setunit{\adddot\addspace}% + \printlist{language}% + \setunit{\adddot\addspace}% + \usebibmacro{byauthor}% + \setunit{\adddot\addspace}% + \usebibmacro{byeditor+others}% + \setunit{\adddot\addspace}% + \printfield{version}% + \setunit{\adddot\addspace}% + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \setunit{\adddot\addspace}% + \iftoggle{bbx:eprint} + {\usebibmacro{eprint}} + {}% + \newunit\newblock + \usebibmacro{url+urldate}% + \setunit{\adddot\addspace}% + \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}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{date}% + \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{report}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{institution+location}% + \newunit\newblock + \printfield{type}% + \setunit*{\addspace}% + \printfield{number}% + \newunit\newblock + \printfield{version}% + \newunit\newblock + \usebibmacro{date}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isrn}} + {}% + \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}} + +%% +%% Copyright (C) 2011-2013,2015-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-ieee.bib, +%% biblatex-ieee.tex, +%% ieee.bbx, +%% ieee.cbx, +%% ieee-alphabetic.bbx, +%% ieee-alphabetic.cbx and +%% magyar-ieee.lbx, +%% and the derived files biblatex-ieee.pdf and +%% biblatex-ieee-alphabetic.pdf. +%% +%% +%% End of file `ieee.bbx'. -- cgit v1.2.3