summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/udesoftec/udesoftec-biblatex.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/udesoftec/udesoftec-biblatex.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/udesoftec/udesoftec-biblatex.sty')
-rw-r--r--macros/latex/contrib/udesoftec/udesoftec-biblatex.sty632
1 files changed, 632 insertions, 0 deletions
diff --git a/macros/latex/contrib/udesoftec/udesoftec-biblatex.sty b/macros/latex/contrib/udesoftec/udesoftec-biblatex.sty
new file mode 100644
index 0000000000..5e9a50c41a
--- /dev/null
+++ b/macros/latex/contrib/udesoftec/udesoftec-biblatex.sty
@@ -0,0 +1,632 @@
+% !Mode:: "TeX:UTF-8"
+%% udesoftec-biblatex.sty
+%% Copyright 2015 J. Peter M. Schuler
+%% 2018/03/28 v1.6.2 udesoftec
+
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `author-maintained'.
+%
+% The current maintainer of this work is J. Peter M. Schuler
+% j.peter.m.schuler@uni-due.de
+%
+% This work consists of the files
+% * udesoftec.cls
+% * udesoftec.bst
+% * udesoftec-bibcommon.sty
+% * udesoftec-biblatex.sty
+% * udesoftec-bst.sty
+% * udesoftec-extra.sty
+%
+% As this work is based on years of mostly undocumented improvement,
+% it includes parts, for which sources can't be identified anymore. Public postings
+% in the LaTeX community were used as an input and if source is known, it is
+% mentioned below. If anybody identifies parts of his/her own code,
+% feel free to contact the maintainer in order to get listed.
+%
+% Special thanks to all contributors and for the help of the tex-live team,
+% e.g. Axel K.; Norbert P.; Petra R.; Rainer S.; Reinhard K.; Robin F.
+%
+% For further information refer to:
+% http://mirrors.ctan.org/macros/latex/contrib/udesoftec/README
+% and
+% http://mirrors.ctan.org/macros/latex/contrib/udesoftec/udesoftec-doc.pdf
+
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{udesoftec-biblatex}[2018/03/28 v1.6.2 udesoftec-biblatex.sty udesoftec bibstyle configuration for biblatex]%
+
+%
+% \newif\ifprimaryDocumentLanguageGerman
+% \DeclareOption{de} {\primaryDocumentLanguageGermantrue}
+% \DeclareOption{en} {\primaryDocumentLanguageGermanfalse}
+
+\newif\ifdocumentIsFinal
+\documentIsFinalfalse
+\DeclareOption{final} {\documentIsFinaltrue}
+
+\DeclareOption*{\PackageWarning{udesoftec-biblatex}{Unknown option \CurrentOption}}
+
+\ProcessOptions\relax
+%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{udesoftec-bibcommon}
+
+\usepackage[
+ backend=biber,
+ style=authoryear,
+ natbib=true, %full cite command fallback
+ dashed=false,
+ %sortcites=true,
+ sorting=nyt,
+ maxcitenames=2,
+ giveninits=true,
+ terseinits=true,
+ uniquename=false,
+ uniquelist=false,
+ urldate=long,
+ maxbibnames=99]{biblatex}
+\@ifpackageloaded{biblatex_legacy}
+{
+\ExecuteBibliographyOptions{labeldate,sorting=nyt,pagetracker}
+}{
+\ExecuteBibliographyOptions{labeldateparts,sorting=nyt,pagetracker}
+}
+\setlength{\bibhang} {1.5em} %hanging indentation for list of references
+\setlength{\bibitemsep} {.25em}
+\setlength{\bibnamesep} {.25em}
+\setlength{\bibinitsep} {.25em}
+
+
+\DeclareFieldFormat*{title}{\bblFontTitle{#1}}
+\renewcommand*{\mkbibacro}[1]{#1}
+\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon{}#1}
+\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addcolon{}#1}
+\DeclareFieldFormat{issn}{\mkbibacro{ISSN}\addcolon{}#1}
+\DeclareFieldFormat{doi}{\bbldoi{#1}}
+
+
+\renewcommand*{\mkbibnameprefix}[1]{\bblFontAuthorInText{#1}}
+\renewcommand*{\mkbibnamefamily}[1]{\bblFontAuthorInText{#1}}
+
+\renewcommand*{\labelnamepunct}{\bblAuthorTitleSep}
+\renewcommand*{\revsdnamedelim}{\bblAuthorsSep}
+\renewcommand*{\multinamedelim}{\bblAuthorsSep}
+\renewcommand*{\finalnamedelim}{ \bblFontAuthorInText{\bblAuthorsSepInText}}
+
+\renewcommand*{\multilistdelim}{\bblAuthorsSep}
+\renewcommand*{\finallistdelim}{\bblAuthorsSep}
+
+\renewcommand*{\andothersdelim}{\space}
+\renewcommand*{\nameyeardelim}{\space}
+
+
+\renewcommand*{\finentrypunct}{}
+
+
+\DeclareFieldFormat{booktitle}{\bblFontInBookTitle{#1}\isdot}
+\DeclareFieldFormat{journaltitle}{\bblFontJournalTitle{#1}\isdot}
+\DeclareFieldFormat{issuetitle}{\bblFontInBookTitle{#1}\isdot}
+\DeclareFieldFormat{maintitle}{\bblFontInBookTitle{#1}\isdot}
+
+\AtBeginBibliography{%
+ \renewcommand*{\finalnamedelim}{\bblAuthorsSep}
+% \renewcommand*{\mkbibnameprefix}[1]{#1}
+ \renewcommand*{\mkbibnamelast}[1]{#1}
+ \renewcommand*{\mkbibnamegiven}[1]{#1}
+ \renewcommand*{\mkbibnamefamily}[1]{#1}
+% \renewcommand*{\mkbibnameaffix}[1]{#1}
+ \renewcommand*{\bibnamedelimd}{\bblFirstnameSep}
+ \renewcommand*{\multinamedelim}{\bblAuthorsSep}
+ \renewcommand*{\finalnamedelim}{\bblAuthorsSep}%
+ \renewcommand*{\revsdnamepunct}{}
+ \doublehyphendemerits=10000
+ \raggedright
+}
+
+
+
+ \toggletrue{abx@bool@giveninits}%
+ \DeclareNameAlias{default}{family-given}%
+ \renewbibmacro*{name:last-first}[5]{%
+ \usebibmacro{name:delim}{#1}%
+ \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}%
+ \mkbibnamelast{#1}\isdot%
+ \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
+ \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}}%
+
+}
+
+\DeclareNameAlias{sortname}{last-first} %alle Autoren in der Biblografie gleich
+
+
+\DefineBibliographyStrings{ngerman}{%
+ references = {\bblheading},
+ andothers = {\bblFontAuthorInText{\bbletal}}, % we don't use et al in bbl
+ editor = {\bbled},%
+ editors = {\bbleds},%
+ urlseen = {\bbllastaccesswas}%
+}
+
+\DefineBibliographyStrings{english}{%
+references = {\bblheading},
+ andothers = {\bblFontAuthorInText{\bbletal}}, % we don't use et al in bbl
+ editor = {\bbled},%
+ editors = {\bbleds},%
+ urlseen = {\bbllastaccesswas}%
+% page = {{Seite}{S\adddot}},
+% pages = {{Seiten}{S\adddot}},
+}
+
+\DefineBibliographyStrings{british}{%
+references = {\bblheading},
+ andothers = {\bblFontAuthorInText{\bbletal}}, % we don't use et al in bbl
+ editor = {\bbled},%
+ editors = {\bbleds},%
+ urlseen = {\bbllastaccesswas}%
+% page = {{Seite}{S\adddot}},
+% pages = {{Seiten}{S\adddot}},
+}
+
+\AtEveryBibitem{\clearlist{language}}
+\AtEveryBibitem{\clearfield{pagetotal}}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newbibmacro*{byeditor+suffix}{%
+ \ifnameundef{editor}
+ {}
+ {%\usebibmacro{byeditor+othersstrg}%
+ %\setunit{\addspace}%
+ \printnames[byeditor]{editor}%
+ \clearname{editor}%
+ \usebibmacro{editorstrg}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}%
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% suppress URL and ISBN if doi present
+\settoggle{bbx:isbn}{false} %deactivate normal isbn output
+\renewbibmacro*{doi+eprint+url}{%
+ \iffieldundef{doi}
+ {
+ \printfield{isbn}
+ \printfield{issn}
+ \usebibmacro{url+urldate}
+ }
+ {
+ \printfield{doi}
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ }
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% for compatibility with bibcommon's citemulti
+\providecommand{\bibstyle@udesoftec}{}
+\providecommand{\bibstyle@udesoftecmulticite}{}
+
+\let\defaultCite\cite%
+\let\cite\citep%
+
+\renewcommand*{\citemulti}[1]{%
+\let\cite\defaultCite%
+\mkbibparens{#1}%
+\let\cite\citep%
+}
+
+
+\providebibmacro*{date+extrayear}{}
+
+\def\bbx@opt@mergedate@true{\bbx@opt@mergedate@compact}
+
+% merge date/issue with date label
+\def\bbx@opt@mergedate@maximum{%
+ \renewbibmacro*{date+extrayear}{%
+ \iffieldundef{\thefield{datelabelsource}year}
+ {}
+ {\printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \iffieldsequal{year}{\thefield{datelabelsource}year}
+ {\printdateextralabel}%
+ {\printfield{labelyear}%
+ \printfield{extrayear}}}}}%
+ \renewbibmacro*{date}{}%
+ \renewbibmacro*{issue+date}{}}
+
+% merge date with date label
+\def\bbx@opt@mergedate@compact{%
+ \renewbibmacro*{date+extrayear}{%
+ \iffieldundef{\thefield{datelabelsource}year}
+ {}
+ {\printtext[parens]{%
+ \iffieldsequal{year}{\thefield{datelabelsource}year}
+ {\printdateextralabel}%
+ {\printfield{labelyear}%
+ \printfield{extrayear}}}}}%
+ \renewbibmacro*{date}{}%
+ \renewbibmacro*{issue+date}{%
+ \iffieldundef{issue}
+ {}
+ {\printtext[parens]{\printfield{issue}}}%
+ \newunit}}
+
+% merge year-only date with date label
+\def\bbx@opt@mergedate@basic{%
+ \renewbibmacro*{date+extrayear}{%
+ \iffieldundef{\thefield{datelabelsource}year}
+ {}
+ {\printtext[parens]{%
+ \printfield{\thefield{datelabelsource}year}%
+ \printfield{extrayear}}}}%
+ \renewbibmacro*{date}{%
+ \iffieldundef{month}
+ {}
+ {\printdate}}%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{
+ test {\iffieldundef{issue}}
+ and
+ test {\iffieldundef{month}}
+ }
+ {}
+ {\printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}%
+ \newunit}}
+
+% merge year-only date with year-only date label
+\def\bbx@opt@mergedate@minimum{%
+ \renewbibmacro*{date+extrayear}{%
+ \iffieldundef{\thefield{datelabelsource}year}
+ {}
+ {\printtext[parens]{%
+ \printfield{\thefield{datelabelsource}year}%
+ \printfield{extrayear}}}}%
+ \renewbibmacro*{date}{%
+ \ifboolexpr{
+ test {\iffieldundef{month}}
+ and
+ test {\iffieldundef{extrayear}}
+ }
+ {}
+ {\printdate}}%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{
+ test {\iffieldundef{issue}}
+ and
+ test {\iffieldundef{month}}
+ and
+ test {\iffieldundef{extrayear}}
+ }
+ {}
+ {\printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}%
+ \newunit}}
+
+% don't merge date/issue with date label
+\def\bbx@opt@mergedate@false{%
+ \renewbibmacro*{date+extrayear}{%
+ \iffieldundef{\thefield{datelabelsource}year}
+ {}
+ {\printtext[parens]{%
+ \printfield{\thefield{datelabelsource}year}%
+ \printfield{extrayear}}}}%
+ \renewbibmacro*{date}{\printdate}%
+ \renewbibmacro*{issue+date}{%
+ \printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}%
+ \newunit}}
+
+\defbibheading{udesoftec}[\bibname]{%
+ \renewcommand*{\chapterformatsimple}{}
+ \let\chapterformat\chapterformatsimple%
+ \chapter{#1}%
+ \addcontentsline{toc}{chapter}{#1}%
+ \let\chapterformat\defaultchapterformat%
+}
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\bblFontAuthorInList{\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\usebibmacro{bbx:savehash}%
+ \printnames{author}%
+ \iffieldundef{authortype}
+ {\setunit{\addspace}}
+ {\setunit{\addcomma\space}}}%
+ \iffieldundef{authortype}
+ {}
+ {\usebibmacro{authorstrg}%
+ \setunit{\addspace}}}}%
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \setunit*{\addspace}}%
+\bblFontYearInList{\usebibmacro{date+extrayear}}}
+\renewbibmacro*{in:}{\printtext{\bblin}}
+\renewbibmacro*{editor}{%
+ \usebibmacro{bbx:editor}{editorstrg}}
+\renewbibmacro*{editor+others}{%
+ \usebibmacro{bbx:editor}{editor+othersstrg}}
+
+
+%remove punctuation before (eds) and make bold
+\renewbibmacro*{bbx:editor}[1]{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\bblFontAuthorInList{\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{editor}%
+ \setunit{\bblEdPrefix}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \clearname{editor}%
+ \setunit{\addspace}}}%
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \setunit*{\addspace}}%
+\bblFontYearInList{\usebibmacro{date+extrayear}}}
+ % erst publisher, dann location
+ \renewbibmacro*{publisher+location+date}{%
+ \printlist{publisher}%
+ \setunit*{\addcomma\space}%
+ \printlist[][1-1]{location}%nur erste Location
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+% location ohne schnickscnack
+\DeclareListFormat{location}{#1}
+%Todo: Bundesland/Land entfernen
+
+
+\renewbibmacro*{event+venue+date}{%
+ \printfield{eventtitle}%
+ \iffieldundef{eventtitleaddon}%
+ {}%
+ {%
+ \newunit%
+ \printfield{eventtitleaddon}%
+ }
+ \ifboolexpr{
+ test {\iffieldundef{venue}}
+ and
+ test {\iffieldundef{eventyear}}
+ }
+ {}
+ {\setunit*{\addspace}%
+ \printtext[parens]{%
+ \printfield{venue}%
+ \setunit*{\addcomma\space}%
+ \printeventdate}}%
+ \newunit}
+
+
+
+% remove double editors from proceedings
+
+\DeclareBibliographyDriver{proceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{editor+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \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{in:}%
+ \usebibmacro{byeditor+suffix}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \newunit\newblock
+ \iffieldundef{series}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+% \printlist{organization}%
+% \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{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{byeditor+suffix}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \iffieldundef{series}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+% \printlist{organization}%
+% \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}
+ }
+
+
+
+
+
+%%%%%%%%%%%%
+% link whole cite including name
+% http://tex.stackexchange.com/questions/15951/hyperlink-name-with-biblatex-authoryear-biblatex-1-4b
+%%%%%%%%%%%%
+\DeclareFieldFormat{citehyperref}{%
+ \DeclareFieldAlias{bibhyperref}{noformat}% Avoid nested links
+ \bibhyperref{#1}}
+
+\DeclareFieldFormat{textcitehyperref}{%
+ \DeclareFieldAlias{bibhyperref}{noformat}% Avoid nested links
+ \bibhyperref{%
+ #1%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}}
+
+\savebibmacro{cite}
+\savebibmacro{textcite}
+
+\renewbibmacro*{cite}{%
+ \printtext[citehyperref]{%
+ \restorebibmacro{cite}%
+ \usebibmacro{cite}}}
+
+\renewbibmacro*{textcite}{%
+ \ifboolexpr{
+ ( not test {\iffieldundef{prenote}} and
+ test {\ifnumequal{\value{citecount}}{1}} )
+ or
+ ( not test {\iffieldundef{postnote}} and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}} )
+ }
+ {\DeclareFieldAlias{textcitehyperref}{noformat}}
+ {}%
+ \printtext[textcitehyperref]{%
+ \restorebibmacro{textcite}%
+ \usebibmacro{textcite}}}
+
+\AtEveryCitekey{%
+\clearfield{shorthand}%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput% \ No newline at end of file