From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 .../latex/contrib/udesoftec/udesoftec-biblatex.sty | 632 +++++++++++++++++++++
 1 file changed, 632 insertions(+)
 create mode 100644 macros/latex/contrib/udesoftec/udesoftec-biblatex.sty

(limited to 'macros/latex/contrib/udesoftec/udesoftec-biblatex.sty')

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
-- 
cgit v1.2.3

