%%
%% This is file `jurabib.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% jurabib.dtx  (with options: `package')
%% 
%% *** This is jurabib v0.6 (2004/01/25) ***
%% 
%% LaTeX package for citing with abbreviated titles and
%%       names, supporting short and long forms of citations
%% 
%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org)
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License
%% as published by the Free Software Foundation; either version 2
%% of the License, or (at your option) any later version.
%% 
%% This program is distributed in the hope that it will be useful,
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%% GNU General Public License for more details.
%% 
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
%% 
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{jurabib}[2004/01/25 v0.6 Extended citations]
\RequirePackage{ifthen}
\RequirePackage{calc}
\RequirePackage{keyval}
\RequirePackage{url}
\RequirePackage{array}
\newcommand*{\jb@pkg@name}{jurabib}
\newif\ifjb@abbrv
\newif\ifjbidemabbrvwithperiod
\newif\ifjb@all@titles
\newif\ifjb@all@full
\newif\ifjb@allow@adding@of@pagerange
\newif\ifjb@allow@adding@of@pagerange@for@first@cite
\newif\ifjb@allow@dot@for@lookat
\newif\ifjb@allow@lookat@for@fullcite
\newif\ifjb@allow@howcited@art@period
\newif\ifjb@allow@hyper@cite@nobib
\newif\ifjb@allow@hyper@cite
\newif\ifjb@allow@nobib
\newif\ifjb@alphanum
\newif\ifjb@always@pageranges
\newif\ifjbaltformat
\newif\ifjb@author@year
\newif\ifjb@babel
\newif\ifjb@backref
\newif\ifjb@before@title@separator
\newif\ifjb@bib@hang
\newif\ifjb@bibetal\jb@bibetaltrue
\newif\ifjb@biblikecite
\newif\ifjb@bibssed
\newif\ifjb@change@fonts@for@fullcite
\newif\ifjb@cite
\newif\ifjb@cite@title
\newif\ifjb@cite@no@title
\newif\ifjb@annotator@last
\newif\ifjb@compare@title@fields
\newif\ifjb@comma@before@rest
\newif\ifjb@compressed@bib
\newif\ifjb@citetoend
\newif\ifjbcross
\newif\ifjb@debug
\newif\ifjb@debug@br
\newif\ifjb@do@authors@index
\newif\ifjb@do@editors@index
\newif\ifjb@do@organizations@index
\newif\ifjb@dot
\newif\ifjb@dynamic@author@fonts
\newif\ifjb@dynamic@crossrefs
\newif\ifjb@edby
\newif\ifjb@endnotes
\newif\ifjbetal
\newif\ifjb@fn
\newif\ifjb@foot
\newif\ifjb@footnote@period
\newif\ifjb@footnote@period@ibidem
\newif\ifjb@first@cite
\newif\ifjb@firstcite@full
\newif\ifjb@first@author@reversed
\newif\ifjb@formatted@pages
\newif\ifjb@fullcite@again
\newif\ifjblookforgender
\newif\ifjb@howcited
\newif\ifjb@howcited@all
\newif\ifjb@howcited@normal
\newif\ifjb@howcited@compare
\newif\ifjb@howcited@multiple
\newif\ifjb@humanbst@loaded
\newif\ifjb@hyper
\newif\ifjb@ibidem
\newif\ifjb@ibidem@pagewise
\newif\ifjb@ibidem@double@pagewise
\newif\ifjb@ibidem@with@name
\newif\ifjb@ibidem@with@short@name
\newif\ifjb@ibidem@with@name@and@title
\newif\ifjb@ibidem@with@name@and@title@auto
\newif\ifjb@same@author@different@work
\newif\ifjb@idem
\newif\ifjb@idem@pagewise
\newif\ifjb@idem@double@pagewise
\newif\ifjb@ignore@varioref
\newif\ifjb@index
\newif\ifjb@index@bib
\newif\ifjb@index@only@first@authors
\newif\ifjb@index@only@first@editors
\newif\ifjb@index@only@first@organization
\newif\ifjb@jura
\newif\ifjb@jox
\newif\ifjb@jureco
\newif\ifjb@kv@recognized
\newif\ifjb@lookat
\newif\ifjb@no@bib\global\jb@no@bibfalse
\newif\ifjb@no@lookat@for@bib
\newif\ifjb@no@nested@crossrefs
\newif\ifjb@no@title@replace
\newif\ifjb@no@firstname
\newif\ifjb@numbered@bib
\newif\ifjb@old@order
\newif\ifjb@nat@use@year@command
\newif\ifjb@noauthorforcitetitle
\newif\ifjbnoformatafterstartpage
\newif\ifjb@opcit
\newif\ifjb@@opcit
\newif\ifjb@period
\newif\ifjb@ragged
\newif\ifjb@bibformat@ibidem
\newif\ifjb@reverse@all@names
\newif\ifjb@reverse@names@in@citation
\newif\ifjb@same@fullauthor
\newif\ifjb@see
\newif\ifjb@second@extra@space
\newif\ifjb@super
\newif\ifjb@suppress@dot@for@howcited
\newif\ifjb@third@extra@space
\newif\ifjb@tabular
\newif\ifjb@tested@pageranges
\newif\ifjb@save@allfull@status
\newif\ifjb@save@lookat@status
\newif\ifjb@suppress@etal@dot
\newif\ifjb@ssed@after@author
\newif\ifjb@ssed@all
\newif\ifjb@ssed@commented
\newif\ifjb@ssed@kerning@wanted
\newif\ifjb@ssed@recent@kerned
\newif\ifjb@ssed@mult@works
\newif\ifjb@ssed@sw
\newif\ifjb@starred@cite
\newif\ifjb@start@page
\newif\ifjb@switchidemofflocally
\newif\ifjb@url
\newif\ifjbuseidemhrule
\newif\ifjbusehowcitedforcite
\newif\ifjb@vario
\newif\ifjbweareinbib
\newif\ifjbweareinendnotes
\newif\ifjbweareinhowcited
\newif\ifjb@yearafterauthor
\newif\ifjb@yearaftertitle
\newif\ifjb@oyear@in@citation
\jb@allow@adding@of@pagerangetrue
\jb@allow@dot@for@lookattrue
\jb@allow@lookat@for@fullcitetrue
\jb@allow@hyper@cite@nobibtrue
\jb@allow@hyper@citetrue
\jb@bib@hangtrue
\jb@annotator@lasttrue
\jb@second@extra@spacetrue
\jb@third@extra@spacetrue
\jbnoformatafterstartpagetrue
\jb@do@authors@indextrue
\jb@do@editors@indextrue
\jb@do@organizations@indextrue
\newcommand*{\NAT@citex}{}%
\def\bbl@cite@choice{%
  \global\let\bibcite\bbl@bibcite
  \@ifpackageloaded{jurabib}{\global\let\bibcite\org@bibcite}{}%
  \global\let\bbl@cite@choice\relax
}%
\edef\jbselectlanguage{\noexpand\protect%
 \expandafter\noexpand\csname jbselectlanguage \endcsname}%
\expandafter\def\csname jbselectlanguage \endcsname#1{%
 \edef\languagename{\ifnum\escapechar=\expandafter`\string#1\@empty%
 \else \string#1\@empty\fi}\select@language{\languagename}%
}%
\def\@mb@citenamelist{%
   cite,%
   citetitle,%
   citenotitle,%
   citetitleonly,%
   footcite,%
   footcitetitle,%
   footcitenotitle,%
   footcitetitleonly,%
   fullcite,%
   footfullcite,%
   citep,%
   citet,%
   citealt,%
   citealp,%
   citeauthor,%
   citeyear,%
   citeyearpar,%
   footcitep,%
   footcitet,%
   footcitealt,%
   footcitealp,%
   footciteauthor%
   footciteyear,%
   citefield,
}
\let\jb@typeout\typeout
\let\jb@package@warning\PackageWarning
\let\jb@package@warningNoLine\PackageWarningNoLine
\def\jb@info#1{\PackageInfo{\jb@pkg@name}{#1}}%
\newcommand*{\jbsilent}{%
  \jb@info{*** Silent Mode ON ***}%
  \let\jb@package@warning\@gobbletwo
  \let\jb@package@warningNoLine\@gobbletwo
  \let\jb@typeout\@gobble%
}%
\newcommand*{\jbauthorfont}{}%
\newcommand*{\jborgauthorfont}{}%
\newcommand*{\jbannotatorfont}{}%
\newcommand*{\jbtitlefont}{}%
\newcommand*{\jbactualauthorfont}{\textit}%
\newcommand*{\jbapifont}{\jbtitlefont}%
\newcommand*{\jbbtitlefont}{\normalfont}%
\newcommand*{\jbauthorfnfont}{\normalfont}%
\newcommand*{\jbactualauthorfnfont}{\textit}%
\newcommand\jbfulltitlefont{\jbtitlefont}%
\newcommand\jbshorttitlefont{\jbtitlefont}%
\newcommand*{\jbauthorfontifannotator}{\jborgauthorfont}%
\newcommand*{\jbignorevarioref}{\global\jb@ignore@varioreftrue}%
\newcommand*{\jbdisablecitationcrossref}{\jb@no@nested@crossrefstrue}%
\newcommand*{\jbdotafterbibentry}{\jb@dottrue}%
\newcommand*{\jbdotafterendnote}{\AtBeginDocument{\def\@endanenote{\unskip.\par\endgroup}}}%
\newcommand*{\jbsuperscripteditionafterauthor}{\jb@ssed@after@authortrue}%
\newcommand*{\jbssedbd}{}\let\jbssedbd\@gobble
\@ifpackageloaded{bibunits}{%
  \ClassError{\jb@pkg@name}{Please load `bibunits' after `jurabib'}{%
   Just put the command `\string\usepackage{bibunits}' %
   after `\string\usepackage{jurabib}',\MessageBreak
   otherwise these packages won't work together.}}{\relax}
\@ifpackageloaded{hyperref}{% NOTE: there's another check for hyperref \AtBeginDocument
  \ClassError{\jb@pkg@name}{Please load `jurabib' before `hyperref'}{%
   Just put the command `\string\usepackage{hyperref}' %
   after `\string\usepackage{jurabib}',\MessageBreak
   otherwise these packages won't work together.}}{\relax}%
\newcommand*{\jbyearaftertitle}{%
  \AtBeginDocument{%
    \global\jb@yearafterauthorfalse
    \global\jb@yearaftertitletrue
  }%
}
\newcommand*{\jboyearincitation}{\jb@oyear@in@citationtrue}%
\newcommand*{\bibauthormultiple}{%
    \stepcounter{multiple@author}% to suppress inside bibliographic entry
    \ifthenelse{\boolean{jblookforgender}}{%
        \ifthenelse{\equal{\jb@@gender}{sm}}{%
            \bibibidfont{\bibidemSmname}%
        }{%
            \ifthenelse{\equal{\jb@@gender}{pm}}{%
                \bibibidfont{\bibidemPmname}%
            }{%
                \ifthenelse{\equal{\jb@@gender}{sf}}{%
                    \bibibidfont{\bibidemSfname}%
                }{%
                    \ifthenelse{\equal{\jb@@gender}{pf}}{%
                        \bibibidfont{\bibidemPfname}%
                    }{%
                        \ifthenelse{\equal{\jb@@gender}{sn}}{%
                            \bibibidfont{\bibidemSnname}%
                        }{%
                            \ifthenelse{\equal{\jb@@gender}{pn}}{%
                                \bibibidfont{\bibidemPnname}%
                            }{%
                                \ifthenelse{\equal{\jb@@gender}{}}{%
                                    \jb@package@warningNoLine{\jb@pkg@name}{%
                                      You are using \string\jblookforgender,\MessageBreak
                                      but gender field for `\jb@key'\MessageBreak
                                      is empty}%
                                    \bibibidfont{\bibidemSmname}%
                                }{%
                                    \jb@package@warningNoLine{\jb@pkg@name}{%
                                      You are using \string\jblookforgender,\MessageBreak
                                      but gender field for `\jb@key'\MessageBreak
                                      is not valid}%
                                    \bibibidfont{\bibidemSmname}%
                                }%
                            }%
                        }%
                    }%
                }%
            }%
        }%
        \bibansep{}%
    }{%
        \ifjbuseidemhrule
            \leavevmode\vrule height 2pt depth -1.6pt width 21pt\hspace{8pt}%
        \else
            \bibibidfont{\bibidemSmname}%
            \ifthenelse{\equal{\jb@@testlast@au@or@ed}{au}%
                        \and\equal{\jb@@test@au@or@ed}{ed}%
            }{%
                \space\bibEIMfont{\editorname}\bibansep{}%
            }{%
                \ifthenelse{\equal{\jb@@testlast@au@or@ed}{aus}%
                            \and\equal{\jb@@test@au@or@ed}{eds}%
                }{%
                     \space\bibEIMfont{\editorsname}\bibansep{}%
                }{%
                     \ifthenelse{\(\equal{\jb@@testlast@au@or@ed}{ed}\and\equal{\jb@@test@au@or@ed}{au}\)%
                                 \or
                                 \(\equal{\jb@@testlast@au@or@ed}{eds}\and\equal{\jb@@test@au@or@ed}{aus}\)%
                                 \or
                                 \equal{\jb@@test@au@or@ed}{au}%
                     }{%
                          \bibansep{}%
                     }{}%
                }%
            }%
        \fi
    }%
}%
\providecommand\textitswitch[1]{\textit{#1}}%
\providecommand\Wrapquotes[1]{``#1''}%
\newcommand*{\jbdy}{}\global\let\jbdy\@gobble % !!! dummy year for .bst label generating mechanism
\newcommand*{\jbsy}[1]{\ifjb@author@year\else\space#1\fi}%
\DeclareRobustCommand{\jbissn}[1]{\unskip,\space ISSN #1}%
\DeclareRobustCommand{\jbisbn}[1]{\unskip,\space ISBN #1}%
\DeclareRobustCommand{\fsted}[1]{%
    \ifjbaltformat
        \ifjbweareinbib\else
            \space\bibEIMfont{#1}%
        \fi
    \else
        \space\bibEIMfont{#1}%
    \fi
}%
\DeclareRobustCommand{\snded}[1]{%
    \ifjbaltformat
        \ifjbweareinbib
            \begingroup
                \def\bibfnfont{\textnormal}%
                #1\bibansep%
            \endgroup
        \else\fi
    \else\fi
}%
\DeclareRobustCommand{\bibedformat}[1]{%% exists only in jhuman.bst = \fsted!
    \ifjbaltformat
        \ifjbweareinbib\else
            \space\edfont{#1}%
        \fi
    \else
        \space\edfont{#1}%
    \fi
}%
\DeclareRobustCommand{\bibedinformat}[1]{\unskip\unskip\space\edfont{#1}}%
\newcommand*{\addtoalllanguages}{}%
\newcommand*{\bibsall}{\addto\addtoalllanguages}%
\AtBeginDocument{\ifjbaltformat\else\let\snded\@gobble\fi}
\newcommand*{\jbedseplikecite}{%
  \ifjb@before@title@separator
   \AtBeginDocument{%
     \renewcommand\bibaesep{%
      \ifjb@reverse@all@names
         \bibefnfont{\jbhowsepbeforetitle}%
      \else
         \bibelnfont{\jbhowsepbeforetitle}%
      \fi
      \space%
     }%
   }%
  \fi
}%
\DeclareRobustCommand{\jbbtasep}{{\normalfont\slash}}%
\DeclareRobustCommand{\jbbfsasep}{{\normalfont\slash}}%
\DeclareRobustCommand{\jbbstasep}{{\normalfont\slash}}%
\DeclareRobustCommand{\jbbtesep}{{\normalfont\slash}}%
\DeclareRobustCommand{\jbbfsesep}{{\normalfont\slash}}%
\DeclareRobustCommand{\jbbstesep}{{\normalfont\slash}}
\DeclareRobustCommand{\jbatsep}{,}
\DeclareRobustCommand{\jbaensep}{.}
\DeclareRobustCommand\el[1]{#1}%
\DeclareRobustCommand\bibel[1]{\ifjb@nat@use@year@command#1\fi}%
\newcommand*{\jbshowbibextralabel}{\renewcommand\bibel[1]{##1}}%
\newcommand*{\jblookforgender}{\global\jblookforgendertrue}%
\newcommand*{\jbuseidemhrule}{%
    \global\jbuseidemhruletrue
    \global\jblookforgenderfalse
}%
\newcommand*{\jbrealcitation}[2]{\@gobble}
\newcommand*{\jbcitationyearformat}[1]{(#1)}
\newcommand*{\jbcitationoyearformat}[1]{\space[#1]}
\newcommand*{\jbbibyearformat}[1]{(#1)}
\newcommand*{\jbindexbib}{\jb@index@bibtrue}
\newcommand*{\jbdonotindexauthors}{\jb@do@authors@indexfalse}
\newcommand*{\jbdonotindexeditors}{\jb@do@editors@indexfalse}
\newcommand*{\jbdonotindexorganizations}{\jb@do@organizations@indexfalse}
\newcommand*{\jbindexonlyfirstauthors}{\jb@index@only@first@authorstrue}
\newcommand*{\jbindexonlyfirsteditors}{\jb@index@only@first@editorstrue}
\newcommand*{\jbindexonlyfirstorganizations}{\jb@index@only@first@organizationstrue}
\newcommand*{\jb@fornoop}{}
\newcommand*{\@jb@for}{}
\newcommand*{\jb@forloop}{}
\newcommand*{\jb@if@forloop}{}
\def\jb@fornoop#1\@@#2#3{}
\long\def\jb@for#1:=#2\do#3{%
  \expandafter\def\expandafter\jb@fortmp\expandafter{#2}%
  \ifx\jb@fortmp\@empty \else\expandafter\jb@forloop#2; %
  \@nil; \@nil\@@#1{#3}\fi}
\long\def\jb@forloop#1; #2; #3\@@#4#5{%
  \def#4{#1}\ifx #4\@nnil \else
  #5\def#4{#2}\ifx #4\@nnil \else#5\jb@if@forloop #3\@@#4{#5}\fi\fi}
\long\def\jb@if@forloop#1; #2\@@#3#4{%
  \def#3{#1}\ifx #3\@nnil\expandafter\jb@fornoop \else
  #4\relax\expandafter\jb@if@forloop\fi#2\@@#3{#4}}
\newcommand*{\jb@@tempa}{}
\newcommand*{\jb@@tempb}{}
\newcommand*{\jb@call@index}[2]{%
   \ifjbweareinbib\ifjb@index@bib\else\jb@indexfalse\fi\fi
   \ifjb@index
       \@ifundefined{jb@#1@#2}{}{%
          \begingroup % keep assignments local
             \@makeother\\\@makeother\"\def~{\string~}%
             \protected@edef\jb@@tempa{\csname jb@#1@#2\endcsname}%
             \jb@for\jb@@tempb:=\jb@@tempa\do{%
                      \ifjb@debug
                          \typeout{INDEXING: |\jb@@tempb|}%
                      \fi
                      \@ifundefined{#1@#2@\jb@@tempb}{%
                           \ifjb@debug\typeout{#1@#2@\jb@@tempb| undefined!}\fi
                           \expandafter\jb@@call@index\jb@@tempb{#1}%
                      }{%
                           \ifjb@debug\typeout{#1@#2@\jb@@tempb| DEFINED!}\fi
                      }%
                      \ifthenelse{\equal{#1}{aut}%
                                  \and\boolean{jb@index@only@first@authors}%
                      }{%
                              \global\@namedef{aut@#2@\jb@@tempb}{}%
                      }{}%
                      \ifthenelse{\equal{#1}{ed}%
                                  \and\boolean{jb@index@only@first@editors}%
                      }{%
                         \ifjb@debug
                             \typeout{Author/Editor Switch for `#2': \jb@@aut@ed@switch}%
                         \fi
                          \ifthenelse{\equal{\jb@@aut@ed@switch}{3}}{%
                              \@ifundefined{warn@ed@#2@\jb@@tempb}{%
                                 \global\@namedef{warn@ed@#2@\jb@@tempb}{}%
                                 \jb@package@warningNoLine{\jb@pkg@name}{%
                                     You have set `\string\jbindexonlyfirsteditors', but\MessageBreak
                                     `#2' has only editor, indexing continuously ..%
                                 }%
                              }{\relax}%
                          }{\global\@namedef{ed@#2@\jb@@tempb}{}}%
                      }{}%
                      \ifthenelse{\equal{#1}{org}%
                                  \and\boolean{jb@index@only@first@organization}%
                      }{%
                              \global\@namedef{org@#2@\jb@@tempb}{}%
                      }{}%
             }%
          \endgroup
        }%
   \fi
}
\newcommand{\jbmakeindexactual}{@}%
\newcommand{\jbauthorindexfont}[1]{#1}%
\newcommand{\jbeditorindexfont}[1]{#1}%
\newcommand{\jborganizationindexfont}[1]{#1}%
\newcommand{\jb@index@aut@markup}[1]{#1\jbmakeindexactual\jbauthorindexfont{#1}}%
\newcommand{\jb@index@ed@markup}[1]{#1\jbmakeindexactual\jbeditorindexfont{#1}}%
\newcommand{\jb@index@org@markup}[1]{#1\jbmakeindexactual\jborganizationindexfont{#1}}%
\newcommand*{\jb@inside@author}{}
\newcommand*{\jb@inside@editor}{}
\newcounter{ibidem@author}
\newcounter{multiple@author}% counter will be set by \bibauthormultiple
\newcommand*{\jb@last@ibidem@author}{}
\def\jb@tempcntc{}%
\newcommand*{\jb@bib@gender@checked}{%
  \ifthenelse{\equal{\jb@@gender}{sm}}{%
      \ifthenelse{\boolean{jb@edby}}{%
          \@ifundefined{jb@morethanonecite}{\idemSmedbyname}{\idemsmedbyname}%
      }{%
          \@ifundefined{jb@morethanonecite}{\ifjbcross\idemSmname\else\bibidemSmname\fi}{\idemsmname}%
      }%
  }{%
      \ifthenelse{\equal{\jb@@gender}{pm}}{%
          \ifthenelse{\boolean{jb@edby}}{%
              \@ifundefined{jb@morethanonecite}{\idemPmedbyname}{\idempmedbyname}%
          }{%
              \@ifundefined{jb@morethanonecite}{\ifjbcross\idemPmname\else\bibidemPmname\fi}{\idempmname}%
          }%
      }{%
          \ifthenelse{\equal{\jb@@gender}{sf}}{%
              \ifthenelse{\boolean{jb@edby}}{%
                  \@ifundefined{jb@morethanonecite}{\idemSfedbyname}{\idemsfedbyname}%
              }{%
                  \@ifundefined{jb@morethanonecite}{\ifjbcross\idemSfname\else\bibidemSfname\fi}{\idemsfname}%
              }%
          }{%
              \ifthenelse{\equal{\jb@@gender}{pf}}{%
                  \ifthenelse{\boolean{jb@edby}}{%
                      \@ifundefined{jb@morethanonecite}{\idemPfedbyname}{\idempfedbyname}%
                  }{%
                      \@ifundefined{jb@morethanonecite}{\ifjbcross\idemPfname\else\bibidemPfname\fi}{\idempfname}%
                  }%
              }{%
                  \ifthenelse{\equal{\jb@@gender}{sn}}{%
                      \ifthenelse{\boolean{jb@edby}}{%
                          \@ifundefined{jb@morethanonecite}{\idemSnedbyname}{\idemsnedbyname}%
                      }{%
                          \@ifundefined{jb@morethanonecite}{\ifjbcross\idemSnname\else\bibidemSnname\fi}{\idemsnname}%
                      }%
                  }{%
                      \ifthenelse{\equal{\jb@@gender}{pn}}{%
                          \ifthenelse{\boolean{jb@edby}}{%
                              \@ifundefined{jb@morethanonecite}{\idemPnedbyname}{\idempnedbyname}%
                          }{%
                              \@ifundefined{jb@morethanonecite}{\ifjbcross\idemPnname\else\bibidemPnname\fi}{\idempnname}%
                          }%
                      }{%
                          \@ifundefined{jb@morethanonecite}{\ifjbcross\idemSmname\else\bibidemSmname\fi}{\idemsmname}%
                      }%
                  }%
              }%
          }%
      }%
  }%
}
\newcommand*\jb@gobbleseven[7]{}
\AtEndDocument{\let\jb@index\jb@gobbleseven}
\newcommand*\jb@index{\begingroup\@makeother\\\@makeother\"\def~{\string~}\jb@@index}%
\newcommand*\jb@@index[7]{%
    \@ifundefined{jb@#1@#2}{%
        \global\@namedef{jb@#1@#2}{{#3}{#4}{#5}{#6}{#7}}%
    }{%
        \protected@edef\@tempa{\csname jb@#1@#2\endcsname}%
        \expandafter\global\expandafter\@namedef\expandafter{jb@#1@#2\expandafter}\expandafter{\@tempa; {#3}{#4}{#5}{#6}{#7}}%
    }%
    %\expandafter\global\expandafter\let\csname jb@#1@#2\endcsname\relax
    \endgroup
}
\newcommand*{\jb@do@normal@index}[1]{\ifjb@debug\typeout{Indexing: |#1|}\fi\index{#1}}%
\newcommand*\jb@@call@normal@index[6]{%
  \ifjb@debug
     \typeout{******** indexing: |#1|#2|#3|#4|#5| of type: |#6|}%
  \fi
  \ifthenelse{\equal{#2}{\@empty}}{%
      \jb@do@normal@index{\csname jb@index@#6@markup\endcsname{#1}}%
  }{%
      \ifthenelse{\equal{#4}{\@empty}}{%
           \ifthenelse{\equal{#5}{\@empty}}{%
                \jb@do@normal@index{\csname jb@index@#6@markup\endcsname{#1, \ifjb@abbrv#3\else#2\fi}}%
           }{%
                \jb@do@normal@index{\csname jb@index@#6@markup\endcsname{#1, #5, \ifjb@abbrv#3\else#2\fi}}%
           }%
      }{%
           \ifthenelse{\equal{#5}{\@empty}}{%
                \jb@do@normal@index{\csname jb@index@#6@markup\endcsname{#1, \ifjb@abbrv#3\else#2\fi\space#4}}%
           }{%
                \jb@do@normal@index{\csname jb@index@#6@markup\endcsname{#1, #5, \ifjb@abbrv#3\else#2\fi\space#4}}%
           }%
      }%
  }%
}%
\newcommand{\jbindextype}{}
\newcommand*\jb@@call@type@index[6]{%
  \ifjb@debug\typeout{******** indexing: |#1|#2|#3|#4|#5| of type: |#6|}\fi
  \begingroup
      \ifthenelse{\equal{#2}{\@empty}}{%
          \protected@edef\jb@tempa{[\jbindextype]{%
              \csname jb@index@#6@markup\endcsname{#1}}%
          }\expandafter\index\jb@tempa
  }{%
      \ifthenelse{\equal{#4}{\@empty}}{%
           \ifthenelse{\equal{#5}{\@empty}}{%
                \protected@edef\jb@tempa{[\jbindextype]{%
                    \csname jb@index@#6@markup\endcsname{#1, \ifjb@abbrv#3\else#2\fi}}%
                }\expandafter\index\jb@tempa
           }{%
                \protected@edef\jb@tempa{[\jbindextype]{%
                    \csname jb@index@#6@markup\endcsname{#1, #5, \ifjb@abbrv#3\else#2\fi}}%
                }\expandafter\index\jb@tempa
           }%
      }{%
           \ifthenelse{\equal{#5}{\@empty}}{%
                \protected@edef\jb@tempa{[\jbindextype]{%
                    \csname jb@index@#6@markup\endcsname{#1, \ifjb@abbrv#3\else#2\fi\space#4}}%
                }\expandafter\index\jb@tempa
           }{%
                \protected@edef\jb@tempa{[\jbindextype]{%
                    \csname jb@index@#6@markup\endcsname{#1, #5, \ifjb@abbrv#3\else#2\fi\space#4}}%
                }\expandafter\index\jb@tempa
           }%
      }%
  }%
  \endgroup
}%
\newcommand\jbCheckedFirst{\ifjb@abbrv\jbFirstAbbrv\else\jbFirst\fi}
\newcommand\jbRevedFirstOnlyLast{\biblnfmt{\jbLast}}%
\newcommand\jbRevedFirstNoVonNoJr{\biblnfmt{\jbLast, }\bibfnfmt{\jbCheckedFirst}}%
\newcommand\jbRevedFirstNoVonJr{\biblnfmt{\jbLast, \jbJunior, }\bibfnfmt{\jbCheckedFirst}}%
\newcommand\jbRevedFirstVonNoJr{\biblnfmt{\jbLast, }\bibfnfmt{\jbCheckedFirst\space\jbVon}}%
\newcommand\jbRevedFirstVonJr{\biblnfmt{\jbLast, \jbJunior, }\bibfnfmt{\jbCheckedFirst\space\jbVon}}%
\newcommand\jbRevedNotFirstOnlyLast{\biblnfmt{\jbLast}}%
\newcommand\jbRevedNotFirstNoVonNoJr{\bibfnfmt{\jbCheckedFirst\space}\biblnfmt{\jbLast}}%
\newcommand\jbRevedNotFirstNoVonJr{\bibfnfmt{\jbCheckedFirst\space}\biblnfmt{\jbLast, \jbJunior}}%
\newcommand\jbRevedNotFirstVonNoJr{\bibfnfmt{\jbCheckedFirst\space\jbVon~}\biblnfmt{\jbLast}}%
\newcommand\jbRevedNotFirstVonJr{\bibfnfmt{\jbCheckedFirst\space\jbVon~}\biblnfmt{\jbLast, \jbJunior}}%
\newcommand\jbNotRevedOnlyLast{\biblnfmt{\jbLast}}%
\newcommand\jbNotRevedNoVonNoJr{\biblnfmt{\jbLast, }\bibfnfmt{\jbCheckedFirst}}%
\newcommand\jbNotRevedNoVonJr{\biblnfmt{\jbLast, \jbJunior, }\bibfnfmt{\jbCheckedFirst}}%
\newcommand\jbNotRevedVonNoJr{\biblnfmt{\jbLast, }\bibfnfmt{\jbCheckedFirst\space\jbVon}}%
\newcommand\jbNotRevedVonJr{\biblnfmt{\jbLast, \jbJunior, }\bibfnfmt{\jbCheckedFirst\space\jbVon}}%
\DeclareRobustCommand{\bibnf}[5]{%
  \def\biblnfmt{\biblnfont}%
  \def\bibfnfmt{\bibfnfont}%
  \def\jbLast{#1}\def\jbFirst{#2}\def\jbFirstAbbrv{#3}\def\jbVon{#4}\def\jbJunior{#5}% NEW 0.51f
  \stepcounter{ibidem@author}\def\jb@ibidem@author{#1#2#3#4#5}%
      \ifthenelse{\boolean{jb@bibformat@ibidem}%
                    \and\not
                  \boolean{jbcross}%
                    \and
                  \theibidem@author=1%
                    \and
                  \themultiple@author<1%
                    \and
                  \equal{\jb@ibidem@author}{\jb@last@ibidem@author}%
                    \and
                  \equal{\jb@simple@pageref@by@heiko{jbib:\jb@tempcntc}}{%
                         \jb@simple@pageref@by@heiko{jbib:\thebibnamereplace}}%
      }{%
            \bibauthormultiple%
      }{%
         \ifjb@first@author@reversed
           \@ifundefined{jb@first@author}{%
                \@namedef{jb@first@author}{}%
                \ifthenelse{\equal{#2}{\@empty}}{%
                     \jbRevedFirstOnlyLast
                }{%
                     \ifthenelse{\equal{#4}{\@empty}}{%
                           \ifthenelse{\equal{#5}{\@empty}}{%
                               \jbRevedFirstNoVonNoJr%
                           }{%
                               \jbRevedFirstNoVonJr%
                           }%
                     }{%
                           \ifthenelse{\equal{#5}{\@empty}}{%
                               \jbRevedFirstVonNoJr%
                           }{%
                               \jbRevedFirstVonJr%
                           }%
                     }%
                }%
           }{% not first author!
                \ifthenelse{\equal{#2}{\@empty}}{%
                     \jbRevedNotFirstOnlyLast%
                }{%
                     \ifthenelse{\equal{#4}{\@empty}}{%
                          \ifthenelse{\equal{#5}{\@empty}}{%
                             \jbRevedNotFirstNoVonNoJr%
                          }{%
                             \jbRevedNotFirstNoVonJr%
                          }%
                     }{%
                          \ifthenelse{\equal{#5}{\@empty}}{%
                             \jbRevedNotFirstVonNoJr%
                          }{%
                             \jbRevedNotFirstVonJr%
                          }%
                     }%
                }%
           }%
         \else
           \ifthenelse{\equal{#2}{\@empty}}{%
                \jbNotRevedOnlyLast
           }{%
                \ifthenelse{\equal{#4}{\@empty}}{%
                     \ifthenelse{\equal{#5}{\@empty}}{%
                        \jbNotRevedNoVonNoJr%
                     }{%
                        \jbNotRevedNoVonJr%
                     }%
                }{%
                     \ifthenelse{\equal{#5}{\@empty}}{%
                        \jbNotRevedVonNoJr%
                     }{%
                        \jbNotRevedVonJr%
                     }%
                }%
           }%
         \fi
      }%
  \gdef\jb@inside@author{#1#2#3#4#5}%
  \ifjbcross\else\gdef\jb@last@ibidem@author{#1#2#3#4#5}\fi
}%
\DeclareRobustCommand{\bibrnf}[5]{%
  \def\biblnfmt{\biblnfont}%
  \def\bibfnfmt{\bibfnfont}%
  \def\jbLast{#1}\def\jbFirst{#2}\def\jbFirstAbbrv{#3}\def\jbVon{#4}\def\jbJunior{#5}% NEW 0.51f
  \stepcounter{ibidem@author}\def\jb@ibidem@author{#1#2#3#4#5}%
      \ifthenelse{\boolean{jb@bibformat@ibidem}%
                    \and\not
                  \boolean{jbcross}%
                    \and
                  \theibidem@author=1%
                    \and
                  \themultiple@author<1%
                    \and
                  \equal{\jb@ibidem@author}{\jb@last@ibidem@author}%
                    \and
                  \equal{\jb@simple@pageref@by@heiko{jbib:\jb@tempcntc}}{%
                         \jb@simple@pageref@by@heiko{jbib:\thebibnamereplace}}%
      }{%
            \bibauthormultiple%
      }{%
          \ifthenelse{\equal{#2}{\@empty}}{%
              \jbRevedNotFirstOnlyLast%
          }{%
              \ifthenelse{\equal{#4}{\@empty}}{%
                  \ifthenelse{\equal{#5}{\@empty}}{%
                       \jbRevedNotFirstNoVonNoJr%
                  }{%
                       \jbRevedNotFirstNoVonJr%
                  }%
              }{%
                  \ifthenelse{\equal{#5}{\@empty}}{%
                       \jbRevedNotFirstVonNoJr%
                  }{%
                       \jbRevedNotFirstVonJr%
                  }%
              }%
          }%
      }%
  \gdef\jb@inside@author{#1#2#3#4#5}%
  \ifjbcross\else\gdef\jb@last@ibidem@author{#1#2#3#4#5}\fi
}%
\DeclareRobustCommand{\bibenf}[5]{%
  \def\biblnfmt{\bibelnfont}%
  \def\bibfnfmt{\bibefnfont}%
  \def\jbLast{#1}\def\jbFirst{#2}\def\jbFirstAbbrv{#3}\def\jbVon{#4}\def\jbJunior{#5}% NEW 0.51f
  \stepcounter{ibidem@author}\def\jb@ibidem@author{#1#2#3#4#5}%
  \def\jb@inside@editor{#1#2#3#4#5}%
  \ifthenelse{%
       \equal{\jb@inside@author}{\jb@inside@editor}%
       \and
       \boolean{jb@idem}%
  }{%
       \ifthenelse{\equal{\bbl@main@language}{english}\and\boolean{jboxford}}{%
            \ifjbuseidemhrule
                \leavevmode\vrule height 2pt depth -1.6pt width 21pt\hspace{3pt}%
            \else
                \edfont{\idemname}%
            \fi
       }{%
            \ifjbuseidemhrule
                \leavevmode\vrule height 2pt depth -1.6pt width 21pt\hspace{3pt}%
            \else
                \edfont{\jb@bib@gender@checked}%
            \fi
       }%
       \jb@bibetalfalse
 }{%
   \ifthenelse{\boolean{jb@bibformat@ibidem}%
                 \and\not
               \boolean{jbcross}%
                 \and
               \theibidem@author=1%
                 \and
               \themultiple@author<1%
                 \and
               \equal{\jb@ibidem@author}{\jb@last@ibidem@author}%
                 \and
               \equal{\jb@simple@pageref@by@heiko{jbib:\jb@tempcntc}}{%
                      \jb@simple@pageref@by@heiko{jbib:\thebibnamereplace}}%
   }{%
         \bibauthormultiple%
   }{%
        \ifjb@first@author@reversed
             \@ifundefined{jb@first@editor}{%
                 \@namedef{jb@first@editor}{}%
                 \ifthenelse{\equal{#2}{\@empty}}{%
                      \jbRevedFirstOnlyLast%
                 }{%
                      \ifthenelse{\equal{#4}{\@empty}}{%
                            \ifthenelse{\equal{#5}{\@empty}}{%
                                 \jbRevedFirstNoVonNoJr%
                            }{%
                                 \jbRevedFirstNoVonJr%
                            }%
                      }{%
                            \ifthenelse{\equal{#5}{\@empty}}{%
                                 \jbRevedFirstVonNoJr%
                            }{%
                                 \jbRevedFirstVonJr%
                            }%
                      }%
                 }%
             }{% not first author!
                 \ifthenelse{\equal{#2}{\@empty}}{%
                      \jbRevedNotFirstOnlyLast%
                 }{%
                      \ifthenelse{\equal{#4}{\@empty}}{%
                           \ifthenelse{\equal{#5}{\@empty}}{%
                                \jbRevedNotFirstNoVonNoJr%
                           }{%
                                \jbRevedNotFirstNoVonJr%
                           }%
                      }{%
                           \ifthenelse{\equal{#5}{\@empty}}{%
                                \jbRevedNotFirstVonNoJr%
                           }{%
                                \jbRevedNotFirstVonJr%
                           }%
                      }%
                 }%
             }%
        \else
             \ifthenelse{\equal{#2}{\@empty}}{%
                  \jbNotRevedOnlyLast%
             }{%
                  \ifthenelse{\equal{#4}{\@empty}}{%
                       \ifthenelse{\equal{#5}{\@empty}}{%
                            \jbNotRevedNoVonNoJr%
                       }{%
                            \jbNotRevedNoVonJr%
                       }%
                  }{%
                       \ifthenelse{\equal{#5}{\@empty}}{%
                            \jbNotRevedVonNoJr%
                       }{%
                            \jbNotRevedVonJr%
                       }%
                  }%
             }%
        \fi
     }%
  }%
  \gdef\jb@inside@author{#1#2#3#4#5}%
  \gdef\jb@inside@editor{#1#2#3#4#5}%
  \ifjbcross\else\gdef\jb@last@ibidem@author{#1#2#3#4#5}\fi
}%
\DeclareRobustCommand{\bibrenf}[5]{%
  \def\biblnfmt{\bibelnfont}%
  \def\bibfnfmt{\bibefnfont}%
  \def\jbLast{#1}\def\jbFirst{#2}\def\jbFirstAbbrv{#3}\def\jbVon{#4}\def\jbJunior{#5}% NEW 0.51f
  \stepcounter{ibidem@author}\def\jb@ibidem@author{#1#2#3#4#5}%
  \def\jb@inside@editor{#1#2#3#4#5}%
  \ifthenelse{%
       \equal{\jb@inside@author}{\jb@inside@editor}%
       \and
       \boolean{jb@idem}%
  }{%
       \ifthenelse{\equal{\bbl@main@language}{english}\and\boolean{jboxford}}{%
            \ifjbuseidemhrule
                \leavevmode\vrule height 2pt depth -1.6pt width 21pt\hspace{3pt}%
            \else
                \edfont{\idemname}%
            \fi
       }{%
            \ifjbuseidemhrule
                \leavevmode\vrule height 2pt depth -1.6pt width 21pt\hspace{3pt}%
            \else
                \edfont{\jb@bib@gender@checked}%
            \fi
       }%
       \jb@bibetalfalse
  }{%
      \ifthenelse{\boolean{jb@bibformat@ibidem}%
                    \and\not
                  \boolean{jbcross}%
                    \and
                  \theibidem@author=1%
                    \and
                  \themultiple@author<1%
                    \and
                  \equal{\jb@ibidem@author}{\jb@last@ibidem@author}%
                    \and
                  \equal{\jb@simple@pageref@by@heiko{jbib:\jb@tempcntc}}{%
                         \jb@simple@pageref@by@heiko{jbib:\thebibnamereplace}}%
      }{%
            \bibauthormultiple%
      }{%
           \ifthenelse{\equal{#2}{\@empty}}{%
                \jbRevedNotFirstOnlyLast
           }{%
                \ifthenelse{\equal{#4}{\@empty}}{%
                     \ifthenelse{\equal{#5}{\@empty}}{%
                          \jbRevedNotFirstNoVonNoJr%
                     }{%
                          \jbRevedNotFirstNoVonJr%
                     }%
                }{%
                     \ifthenelse{\equal{#5}{\@empty}}{%
                          \jbRevedNotFirstVonNoJr%
                     }{%
                          \jbRevedNotFirstVonJr%
                     }%
                }%
           }%
      }%
  }%
  \gdef\jb@inside@author{#1#2#3#4#5}%
  \gdef\jb@inside@editor{#1#2#3#4#5}%
  \ifjbcross\else\gdef\jb@last@ibidem@author{#1#2#3#4#5}\fi
}%
\DeclareRobustCommand{\biblenf}[5]{\bibenf{#1}{#2}{#3}{#4}{#5}}
\DeclareRobustCommand{\bibrlenf}[5]{\bibrenf{#1}{#2}{#3}{#4}{#5}}
\newcommand*{\jblinebreak}{\linebreak[4]}%
\DeclareRobustCommand{\biblnfont}{\textbf}%
\DeclareRobustCommand{\bibfnfont}{\textbf}%
\DeclareRobustCommand{\bibelnfont}{\textbf}%
\DeclareRobustCommand{\bibefnfont}{\textbf}%
\DeclareRobustCommand{\bibtfont}{}%
\DeclareRobustCommand{\bibbtfont}{}%
\DeclareRobustCommand{\bibjtfont}{}%
\DeclareRobustCommand{\bibapifont}{}%
\DeclareRobustCommand{\bibrevtfont}{}%
\DeclareRobustCommand{\bibibidfont}{\biblnfont}%
\newcommand{\bibimfont}{\bibfnfont}%
\newcommand{\jbimfont}{\textnormal}%
\newcommand{\bibeimfont}{\bibefnfont}%
\newcommand{\jbeimfont}{\textnormal}%
\DeclareRobustCommand{\bibanfont}{\biblnfont}%
\DeclareRobustCommand{\jbsamearch}{\mbox{}\\[-1.2\baselineskip]}%
\DeclareRobustCommand{\jbsamesubarch}{\mbox{}\\[-.5\baselineskip]}%
\DeclareRobustCommand{\jbnotsamearch}{\mbox{}\\[.3\baselineskip]}%
\DeclareRobustCommand{\jbsubarchsep}{\ifjbweareinbib:\\[.2\baselineskip]\fi}%
\DeclareRobustCommand{\jbarchnamesep}{\ifjbweareinbib\hspace{4em}\fi}%
\DeclareRobustCommand{\jbshortarchformat}[1]{(#1)}%
\DeclareRobustCommand{\jbshortsubarchformat}[1]{(#1)}%
\DeclareRobustCommand{\jbarchnameformat}[1]{\space(#1)}%
\DeclareRobustCommand{\jbsamesubarchindent}{\mbox{}\hspace{1em}--}%
\DeclareRobustCommand{\jbarchnameformat}[1]{(#1)}%
\newlength{\jb@subarchitemwidth}%
\newlength{\jb@subarchentrywidth}%
\addtolength{\jb@subarchentrywidth}{\textwidth}%
\DeclareRobustCommand{\jbarchsig}[2]{%
     \ifjbweareinbib
        \settowidth{\jb@subarchitemwidth}{\jbsamesubarchindent+#1}%
        \setlength{\jb@subarchentrywidth}{\textwidth-\jb@subarchitemwidth-4em}%
        \begin{tabular}{@{}p{\jb@subarchitemwidth}@{}j{\jb@subarchentrywidth}@{}}%
           #1\ifjb@dot\unskip\unskip\unskip.\fi&\ifthenelse{\equal{#2}{}}{}{\jbarchnameformat{#2}}%
        \end{tabular}
     \fi
}%
\DeclareRobustCommand{\bibIMfont}[1]{%
    \ifjbweareinbib
        \ifjbweareinhowcited
           \jbimfont{#1}%
        \else
           \bibimfont{#1}%
        \fi
    \else
        \jbimfont{#1}%
    \fi
}%
\DeclareRobustCommand{\bibEIMfont}[1]{%
    \ifjbweareinbib
        \ifjbweareinhowcited
           \jbeimfont{#1}%
        \else
           \bibeimfont{#1}%
        \fi
    \else
        \jbeimfont{#1}%
    \fi
}%
\DeclareRobustCommand{\edfont}[1]{%
    \ifjbweareinbib
        \ifjbweareinhowcited
           \jbeimfont{#1}%
        \else
           \bibeimfont{#1}%
        \fi
    \else
        \jbeimfont{#1}%
    \fi
}%
\DeclareRobustCommand{\bibbtasep}{{\normalfont\slash}}%
\DeclareRobustCommand{\bibbfsasep}{{\normalfont\slash}}%
\DeclareRobustCommand{\bibbstasep}{{\normalfont\slash}}%
\DeclareRobustCommand{\Bibbtasep}{\bibbtasep\ifjb@tabular\jblinebreak\fi}%
\DeclareRobustCommand{\Bibbfsasep}{\bibbfsasep\ifjb@tabular\jblinebreak\fi}%
\DeclareRobustCommand{\Bibbstasep}{\bibbstasep\ifjb@tabular\jblinebreak\fi}%
\DeclareRobustCommand{\bibbtesep}{{\normalfont\slash}}%
\DeclareRobustCommand{\bibbfsesep}{{\normalfont\slash}}%
\DeclareRobustCommand{\bibbstesep}{{\normalfont\slash}}%
\DeclareRobustCommand{\Bibbtesep}{\bibbtesep\ifjb@tabular\jblinebreak\fi}%
\DeclareRobustCommand{\Bibbfsesep}{\bibbfsesep\ifjb@tabular\jblinebreak\fi}%
\DeclareRobustCommand{\Bibbstesep}{\bibbstesep\ifjb@tabular\jblinebreak\fi}%
\DeclareRobustCommand{\bibansep}{\bibfnfont{: }}%
\DeclareRobustCommand{\bibaesep}{\bibefnfont{: }}%
\DeclareRobustCommand{\bothaesep}{\ifjbweareinbib\bibaesep\else\jbhowsepbeforetitleae\fi}%
\DeclareRobustCommand{\bibatsep}{}\renewcommand*{\bibatsep}{.}%
\DeclareRobustCommand{\bibbdsep}{,}%
\DeclareRobustCommand{\bibBTsep}{\def\jb@first@editor{}\bibbtsep}%
\DeclareRobustCommand{\bibJTsep}{\def\jb@first@editor{}\bibjtsep}%
\DeclareRobustCommand{\bibbtsep}{\inname{} }%
\DeclareRobustCommand{\bibjtsep}{}%
\DeclareRobustCommand{\bibaldelim}{}%
\DeclareRobustCommand{\bibardelim}{}%
\DeclareRobustCommand{\bibpldelim}{[}%
\DeclareRobustCommand{\bibprdelim}{]}%
\DeclareRobustCommand{\bibapyldelim}{}%
\DeclareRobustCommand{\bibapyrdelim}{}%
\DeclareRobustCommand{\dateldelim}{}%
\DeclareRobustCommand{\daterdelim}{}%
\DeclareRobustCommand{\bpubaddr}{:}% between publisher and address
\DeclareRobustCommand{\apyformat}[1]{%
  \ifjb@bibssed
    \let\jbedition\@gobble%
    \unskip\unskip\space%
    \bibapyldelim{}\ifthenelse{\equal{\jb@@edition}{\@empty}}{}{%
    \textsuperscript{\jb@@edition}}#1\bibapyrdelim{}%
  \else
      \bibapyldelim{}#1\bibapyrdelim{}%
  \fi
}%
\DeclareRobustCommand{\ajtsep}{,}
\DeclareRobustCommand{\jblangle}{\raisebox{.15ex}{$\langle$}}
\DeclareRobustCommand{\jbrangle}{\raisebox{.15ex}{$\rangle$}}
\DeclareRobustCommand{\biburlprefix}{\jblangle{}URL: }
\DeclareRobustCommand{\biburlsuffix}{\jbrangle{}}
\DeclareRobustCommand{\biburlfont}[1]{\urlstyle{#1}}%
\DeclareRobustCommand{\urldatecomment}{}
\DeclareRobustCommand{\bibbudcsep}{~--\space}
\DeclareRobustCommand{\bibcommenthowcited}{}
\DeclareRobustCommand{\bibartperiodhowcited}{}
\DeclareRobustCommand{\bibnotcited}{}
\DeclareRobustCommand{\bibhowcited}{}
\DeclareRobustCommand{\howcitedprefix}{}
\DeclareRobustCommand{\howcitedsuffix}{}
\DeclareRobustCommand{\bibvolumecomment}{}
\DeclareRobustCommand{\volumeofname}{}
\DeclareRobustCommand{\alsothesisname}{}
\DeclareRobustCommand{\bibces}{: }
\DeclareRobustCommand{\bibcrossrefcite}{}
\DeclareRobustCommand{\bibcrossrefciteagain}{}
\DeclareRobustCommand{\bibincollcrossrefcite}{}
\DeclareRobustCommand{\bibincollcrossrefciteagain}{}
\DeclareRobustCommand{\bibsnfont}{}%
\DeclareRobustCommand{\bibvtfont}{\textit}%
\DeclareRobustCommand{\osep}{%
    \ifjbweareinbib
        \ifjboxford;\else.\fi % Maarten wishes semi-colon
    \else
        \ifjboxford
            ;% Maarten wishes semi-colon
        \else
            \ifjbchicago
                ;%
            \else
                .%
            \fi
        \fi
    \fi
}%
\DeclareRobustCommand{\reprintname}{\ifjbweareinbib\Reprint\else\reprint\fi}%
\newcommand*{\jbedafti}[1]{}%
\newcommand*{\jbtiafed}[1]{#1}%
\newcommand*{\jbbookedaftertitle}{%
    \renewcommand\jbedafti[1]{##1}%
    \renewcommand\jbtiafed[1]{}}
\providecommand{\addto}{\g@addto@macro}
\def\jb@add@to#1#2{\addto{#1}{#2}#2}% <=== ?????
\def\AddTo#1#2{\AtBeginDocument{\jb@add@to#1{#2}}}%
\newcommand*{\jbonlyforcitations}{}
\newcommand*{\jbonlyforbib}{}
\newcommand*{\jbonlyforfirstcitefullbegin}{}
\newcommand*{\jbonlyforfirstcitefullend}{}
\newcommand{\bibAnnote}[1]{}
\newcommand{\bibAnnoteFile}[1]{}
\newcommand{\bibAnnotePath}[1]{\def\jb@ann@input@path{#1}}
\ifx\jb@ann@input@path\@undefined\let\jb@ann@input@path\input@path\fi
\newcommand{\jbannoteformat}[1]{{\small#1\par}}%
\providecommand{\bbl@main@language}{english}%
\newif\ifjbhum
\newif\ifjboxford
\newif\ifjbchicago
\newcommand*{\aftervolsep}{,}%
\DeclareRobustCommand{\volumeformat}[1]{\Volumename~#1\aftervolsep}%
\DeclareRobustCommand{\artvolumeformat}[1]{#1}%
\DeclareRobustCommand{\pervolumeformat}[1]{#1}%
\DeclareRobustCommand{\revvolumeformat}[1]{#1}%
\DeclareRobustCommand{\artnumberformat}[1]{\unskip,\space Nr.~#1}%
\DeclareRobustCommand{\pernumberformat}[1]{\unskip\space Nr.~#1}%
\DeclareRobustCommand{\revnumberformat}[1]{\unskip\space Nr.~#1}%
\DeclareRobustCommand{\artyearformat}[1]{\bibaldelim#1\bibardelim}%
\DeclareRobustCommand{\peryearformat}[1]{\bibpldelim#1\bibprdelim}%
\DeclareRobustCommand{\revyearformat}[1]{\artyearformat{#1}}%
\DeclareRobustCommand{\artvolnumformat}[2]{%
    \ifthenelse{\equal{#1}{}}{%
        #2%
    }{%
        \ifthenelse{\equal{#2}{}}{%
           #1%
        }{%
            \artvolumeformat{#1}\artnumberformat{#2}%
        }%
    }%
}%
\DeclareRobustCommand{\pervolnumformat}[2]{%
    \ifthenelse{\equal{#1}{}}{%
        #2%
    }{%
        \ifthenelse{\equal{#2}{}}{%
           #1%
        }{%
            \pervolumeformat{#1}\pernumberformat{#2}%
        }%
    }%
}%
\DeclareRobustCommand{\revvolnumformat}[2]{\artvolnumformat{#1}{#2}}%
\DeclareRobustCommand{\translator}[3]{%
   \unskip\unskip\space%
   \ifthenelse{\equal{#1}{}}{% translator missing
        \ifjboxford\transfrom\else\Transfrom\fi\jbflanguage{#2}%
   }{% translator given
        \ifthenelse{\equal{\bbl@main@language}{german}}{% main language german
            \ifthenelse{\equal{#2}{}}{% language missing
                {\"U}bers. \transby{} #1%
            }{% language given
                \ifjboxford\transfrom\else\Transfrom\fi\jbflanguage{#2} ^^fcbers. \transby{} #1%
            }%
        }{%
            \ifthenelse{\equal{#2}{}}{% language missing
                \trans{} \transby{} #1%
            }{% language given
                \trans{} \transfrom{}\jbflanguage{#2} \transby{} #1%
            }%
        }%
   }% dot or not?
   \ifjbchicago
      \ifthenelse{\equal{#3}{1}}{% \(type=incollection \and editor given\) \or type=article
        \bibatsep{}%
      }{}%
   \else
      \ifthenelse{\equal{#3}{1}\and\not\boolean{jboxford}}{%
        \bibatsep{}%
      }{}%
   \fi
}%
\DeclareRobustCommand{\jbflanguage}[1]{%
    \unskip\space% prevent from additional spaces for empty \transfrom macros
    \ifthenelse{\equal{#1}{german}}{%
        \fromgerman%
    }{%
        \ifthenelse{\equal{#1}{english}}{%
            \fromenglish%
        }{%
            \ifthenelse{\equal{#1}{french}}{%
                \fromfrench%
            }{%
                \ifthenelse{\equal{#1}{dutch}}{%
                    \fromdutch%
                }{%
                    \ifthenelse{\equal{#1}{spanish}}{%
                        \fromspanish%
                    }{%
                        \ifthenelse{\equal{#1}{portuguese}}{%
                            \fromportuguese%
                        }{%
                            \ifthenelse{\equal{#1}{italian}}{%
                                \fromitalian%
                            }{%
                                \ifthenelse{\equal{#1}{norsk}}{%
                                    \fromnorsk%
                                }{%
                                    \ifthenelse{\equal{#1}{finnish}}{%
                                        \fromfinnish%
                                    }{%
                                        \relax
                                    }%
                                }%
                            }%
                        }%
                    }%
        }%
            }%
    }%
    }%
}%
\renewcommand*{\bibstyle}[1]{%
  \ifthenelse{\equal{#1}{jox}}{%
    \global\jb@joxtrue
    \global\jb@humanbst@loadedtrue
    \global\jboxfordtrue
  }{%
      \ifthenelse{\equal{#1}{jchicago}}{%
        \global\jb@author@yeartrue
        \global\jb@yearafterauthortrue
      }{%
          \ifthenelse{\equal{#1}{jureco}}{%
            \global\jb@jurecotrue
            \global\jb@author@yeartrue
            \global\jb@yearafterauthortrue
            \global\jb@yearaftertitlefalse
          }{%
              \ifthenelse{\equal{#1}{jhuman}}{\global\jb@humanbst@loadedtrue}{}%
          }%
      }%
  }%
}%
\DeclareRobustCommand{\jbapifont}[1]{#1}%
\DeclareRobustCommand{\jbbtfont}{}%
\newif\ifjbopcit
\newcommand*{\jb@reset@look@label@for}{}%
\newcommand*{\jb@reset@opcit@label@for}{}%
\newcommand*{\opcit}{\textit{op.\,cit.}}%
\newcommand*{\OpCit}{%
 \ifjbweareinbib\else
   \ifjb@opcit
     \ifjb@@opcit
       \unskip\unskip,%
       \ifjb@ssed@recent@kerned
         \jb@do@ssed@kerning%
       \else
         \space%  space part of the opcit hyperlink?
       \fi
       \ifjb@allow@hyper@cite\hyper@jblinkend\fi
       \endgroup   % <=== here we are ending with the link to the bibliography
       \begingroup % <=== here we are starting a new hyperlink to the source citation of the opcit-sequence
         \ifjb@allow@hyper@cite\hyper@jblinkstart{opcit.\@citeb.\jb@reset@opcit@label@for}\fi
         \opcit%
            \ifthenelse{\equal{\jb@@newpagecite}{}}{\ifjb@lookat\else\global\jb@footnote@periodfalse\fi}{}%
         \ifjb@allow@hyper@cite\hyper@jblinkend\fi % <=== we are closing the opcit hyperlink ...
       \endgroup
       \begingroup
       \ifjb@allow@hyper@cite\hyper@jblinkstart{\@citeb}\fi % <=== ... an reopen the hyperlink to the bibliography
       \jb@extract
     \fi
   \fi
 \fi
}%
\newcommand*{\jb@open}{}%
\newcommand*{\jb@close}{}%
\newcommand*{\jb@cr@open}{}%
\newcommand*{\jb@cr@close}{}%
\newcommand*{\jb@incoll@cr@open}{}%
\newcommand*{\jb@incoll@cr@close}{}%
\newcommand*{\jb@art@cr@open}{}%
\newcommand*{\jb@art@cr@close}{}%
\DeclareRobustCommand{\jbpages}{}%
\DeclareRobustCommand{\jbedition}[1]{%
    \unskip\unskip\ifjb@humanbst@loaded\else\space\fi#1}%
\DeclareRobustCommand{\jbPAGES}{}
\DeclareRobustCommand{\jbPages}[1]{%
  \unskip\unskip\ifjbweareinbib, \else
  \ifjb@comma@before@rest, \else\space\fi\fi
  \jbprformat{#1}%
}%
\DeclareRobustCommand{\jbArchPages}[1]{%
  \unskip\unskip\ifjbweareinbib, \else
  \ifjb@comma@before@rest, \else\space\fi\fi
  \jbprformat{#1}%
}%
\DeclareRobustCommand{\jbartPages}[1]{%
  \ifjbchicago
      \unskip:\space
  \else
      \unskip\unskip\ifjbweareinbib, \else
      \ifjb@comma@before@rest, \else\space\fi\fi
  \fi
  \jbprformat{#1}%
}%
\let\origPAGES\jbPAGES
\let\origpages\jbpages
\let\origPages\jbPages
\let\origartPages\jbartPages
\newcommand*{\jb@endnote}{}%
\DeclareRobustCommand{\jbendnote}[1]{}% default
\DeclareRobustCommand{\jbnote}[2]{%
    \ifjbweareinbib
        \unskip\unskip\ifthenelse{\equal{#1}{1}}{, #2}{#2}%
    \else
        \unskip\unskip%
    \fi
}%
\newcommand*{\jb@open@clean@for@crossref}{%
  \jb@no@lookat@for@bibtrue
  \jbcrosstrue
  \ifjb@all@full
   \jb@save@allfull@statustrue
   \jb@all@fullfalse
   \jb@fullcite@againfalse
  \fi
  \ifjb@lookat
   \jb@save@lookat@statustrue
   \jb@lookatfalse
  \fi
  \noibidem
  \let\jbauthorfont\biblnfont
  \let\jbauthorfnfont\bibfnfont
  \let\jbactualauthorfont\biblnfont
  \let\jbactualauthorfnfont\bibfnfont
  \ifjbweareinbib
    \let\jbhowsepbeforetitle\bibansep
    \let\jbhowsepbeforetitleae\bibaesep
  \fi
  \let\jbbtasep\bibbtasep
  \let\jbbfsasep\bibbfsasep
  \let\jbbstasep\bibbstasep
  \let\jbbtesep\bibbtesep
  \let\jbbfsesep\bibbfsesep
  \let\jbbstesep\bibbstesep
  \let\jbtitlefont\bibtfont
  \let\jbbtitlefont\bibbtfont
  \let\jbapifont\bibapifont
  \let\jb@extraspace\space
}%
\newcommand*{\jb@close@clean@for@crossref}{%
  \ifjb@save@allfull@status
   \jb@all@fulltrue
   \jb@save@allfull@statusfalse
  \fi
  \ifjb@save@lookat@status
   \jb@lookattrue
   \jb@save@lookat@statusfalse
  \fi
  \jb@no@lookat@for@bibfalse
  \jbcrossfalse
  \jb@indextrue
  \noidem
}%
\DeclareRobustCommand{\jbcrossrefchecked}[2][]{%
 \begingroup
 \jb@open@clean@for@crossref
   \ifjb@firstcite@full\ifjb@all@full\else
     \@ifundefined{citefull@#2}{%
         \global\@namedef{citefull@#2}{citefull}%
     }{}%
   \fi\fi
   \ifthenelse{\equal{#1}{}}{%
    \jb@cr@open%
     \inname{} %
      % make a difference between first crossref cite
      % and again crossref cite (ONLY FOR CITATION! 0.5e)
     \ifjbweareinbib
        \ifjb@index@bib\else\jb@indexfalse\fi\bibcrossrefcite{#2}%
     \else
      \@ifundefined{NORMCR@#2}{%
        \global\@namedef{NORMCR@#2}{}%
        \bibcrossrefcite{#2}%
      }{%
         \jb@indexfalse\bibcrossrefciteagain{#2}%
      }%
     \fi
    \jb@cr@close%
   }{%
    \jb@cr@open%
     \ifjboxford\volumename\else\Volumename\fi~#1 \volumeofname{} %
      % make a difference between first crossref cite
      % and again crossref cite (ONLY FOR CITATION! 0.5e)
     \ifjbweareinbib
        \ifjb@index@bib\else\jb@indexfalse\fi\bibcrossrefcite{#2}%
     \else
      \@ifundefined{NORMCR@#2}{%
        \global\@namedef{NORMCR@#2}{}%
        \bibcrossrefcite{#2}%
      }{%
        \jb@indexfalse\bibcrossrefciteagain{#2}%
      }%
     \fi
    \jb@cr@close%
   }%
  \jb@close@clean@for@crossref
 \endgroup% Grouping (otherwise fonts changed if `howcited')
}%
\DeclareRobustCommand{\jbartcrossrefchecked}[2][]{{%
 \jb@open@clean@for@crossref
   \ifjb@firstcite@full\ifjb@all@full\else
     \@ifundefined{citefull@#2}{%
         \global\@namedef{citefull@#2}{citefull}%
     }{}%
   \fi\fi
   \ifthenelse{\equal{#1}{}}{%
      \jb@art@cr@open%
        \inname{} %
         \ifjbweareinbib
          \ifjb@index@bib\else
           \jb@indexfalse
          \fi
          \bibcrossrefcite{#2}%
         \else
          \@ifundefined{ARTCR@#2}{%
            \global\@namedef{ARTCR@#2}{}%
            \bibcrossrefcite{#2}%
          }{%
            \jb@indexfalse\bibcrossrefciteagain{#2}%
          }%
         \fi
      \jb@art@cr@close%
   }{%
      \jb@art@cr@open%
        \Volumename~#1 \volumeofname{} %
        \ifjbweareinbib
         \ifjb@index@bib\else
          \jb@indexfalse
         \fi
         \bibcrossrefcite{#2}%
        \else
          \@ifundefined{ARTCR@#2}{%
             \global\@namedef{ARTCR@#2}{}%
             \bibcrossrefcite{#2}%
           }{%
             \jb@indexfalse\bibcrossrefciteagain{#2}%
           }%
         \fi
      \jb@art@cr@close%
   }%
 \jb@close@clean@for@crossref
 }%
}%
\newcommand*{\fullnameoxfordcrossref}[1]{%
       \ifjb@debug
           \ifjb@debug@br[\fi
                \textcolor[named]{Dandelion}{\citefield{author}{#1}\jbhowsepbeforetitle\citefield{title}{#1}}%
           \ifjb@debug@br]\fi
       \else
          \citefield{author}{#1}\jbhowsepbeforetitle\citefield{title}{#1}%
       \fi
}
\newcommand*{\jbedbyincollcrossreflong}[1]{%
      \ifjbweareinbib
         \bibtfont{\citefield{title}{#1}}%
      \else
         \jbbtfont{\citefield{title}{#1}}%
      \fi
      \bibatsep{} %
      \ifthenelse{\equal{\bibatsep}{.}}{\Edbyname{} }{\edbyname{} }%
      \citefield{author}{#1}%
      \unskip\ifjbetal\jbetalfalse\else.\fi\space%
      \citefield{apy}{#1}%
      \unskip\unskip%
}
\newcommand*{\jbedbyincollcrossrefshortwithapy}[1]{%
      \ifjbweareinbib
         \bibtfont{\citefield{shorttitle}{#1}}%
      \else
         \jbbtfont{\citefield{shorttitle}{#1}}%
      \fi
      \bibatsep{} %
      \ifthenelse{\equal{\bibatsep}{.}}{\Edbyname{} }{\edbyname{} }%
      \citefield{shortauthor}{#1}%
      \unskip\ifjbetal\jbetalfalse\else.\fi\space%
      \citefield{apy}{#1}%
      \unskip\unskip%
}
\newcommand*{\jbedbyincollcrossrefshortnoapy}[1]{%
      \ifjbweareinbib
         \bibtfont{\citefield{shorttitle}{#1}}%
      \else
         \jbbtfont{\citefield{shorttitle}{#1}}%
      \fi
      \bibatsep{} %
      \ifthenelse{\equal{\bibatsep}{.}}{\Edbyname{} }{\edbyname{} }%
      \citefield{shortauthor}{#1}%
      \unskip\unskip%
}
\newcommand*{\jbedbyincollcrossrefshort}[1]{%
      \citefield{shortauthor}{#1}%
      \unskip\unskip%
}
\DeclareRobustCommand{\jbincollcrossref}[2]{%
 \begingroup
 \jb@open@clean@for@crossref
 \jb@incoll@cr@open%
 \ifjb@firstcite@full\ifjb@all@full\else
     \@ifundefined{citefull@#1}{%
         \global\@namedef{citefull@#1}{citefull}%
     }{}%
 \fi\fi
 \ifthenelse{%
      \boolean{jb@edby}%
      \and
      \boolean{jbchicago}%
      \and
      \equal{#2}{1}% is there an editor???
 }{%
      \let\bibedformat\@gobble % exists only in jhuman.bst
      \incollinname{} %
      \hyper@jblinkstart{#1}%
      \ifjbweareinbib
         \jbedbyincollcrossrefcite{#1}%
      \else
         \@ifundefined{INCCR@#1}{%
            \global\@namedef{INCCR@#1}{}%
            \jbedbyincollcrossrefcite{#1}%
         }{%
            \jbedbyincollcrossrefciteagain{#1}%
         }%
      \fi
      \hyper@jblinkend%
 }{%
      \incollinname{} %
      \ifjbweareinbib
        \ifjb@index@bib\else
         \jb@indexfalse
        \fi
        \bibincollcrossrefcite{#1}%
      \else
        \@ifundefined{INCCR@#1}{%
           \global\@namedef{INCCR@#1}{}%
           \bibincollcrossrefcite{#1}%
        }{%
          \jb@indexfalse\bibincollcrossrefciteagain{#1}%
        }%
      \fi
 }%
 \jb@incoll@cr@close%
 \jb@close@clean@for@crossref
 \endgroup% Grouping (otherwise fonts changed if `howcited')
}%
\DeclareRobustCommand{\numberandseries}[2]{%
    \unskip\unskip\ifjb@jox\else,\fi
    \space\bibsnfont{#2}%
    \ifthenelse{\equal{#1}{}}{}{~#1}%
}%
\newcommand*{\edbysep}{\bibatsep{} }%
\newcommand*{\incolledformat}[5]{%
 \bibBTsep%
 \ifjb@edby
    #3%
    \ifx\relax#1\relax
     \ifx\relax#5\relax\else
      \ifx\relax#4\relax
        \bibatsep{}%
      \else
        \bibatsep{}\space%
      \fi
     \fi
    \else
        \ifx\relax#5\relax
            \ifjb@humanbst@loaded\edbysep{}\fi
            \Edbyname{} %
        \else
            \edbysep{}%
            \Edbyname{} %
        \fi
        \begingroup
            #1%
        \endgroup
    \fi
    \ifx\relax#4\relax\else
      \ifx\relax#1\relax\else
        \ifx\relax#5\relax
          .\space%
        \else
          \bibatsep{} %
        \fi
      \fi
      \Volumename~#4%
    \fi
    \ifx\relax#1\relax
     \ifx\relax#4\relax\else.\fi % volume empty
    \else
      \ifjb@humanbst@loaded\else
        \ifjbchicago\else.\fi
      \fi
    \fi
 \else
  \ifx\relax#1\relax\else
      \begingroup
          #1 % editor
      \endgroup
      \ifx\relax#2\relax\else#2\fi
      \bothaesep%
    \fi
    #3%
    \ifx\relax#4\relax
      \ifx\relax#5\relax\else% No volume, but booktitleaddon
        \bibatsep%
      \fi
    \else
      \ifx\relax#5\relax\else,\space\fi% volume and booktitleaddon
      \volumeformat{#4}%
    \fi
 \fi
}
\newcommand\jburldef{}
\newcommand\jb@urldef{}
\newcommand\jb@returnAfterFi{}
\long\def\jb@returnAfterFi#1\fi{\fi#1}
\newcommand*\jb@remove@percentCr{}% see hyperref.sty's \Hy@RemovePercentCr
\begingroup % no `%' inside this group! (Changing \endlinechar makes this easier).
\endlinechar\m@ne
\catcode`\^^M\active
\catcode`\%=12
\gdef\jburldef#1{
    \begingroup
    \def\jb@bbl@key{#1}
    \let\do\@makeother\dospecials
    \catcode`{\@ne \catcode`}\tw@
    \catcode`\^^M\active
    \def^^M{ }
    \jb@urldef
}
\gdef\jb@remove@percentCr#1%^^M#2\@nil{
    #1
    \ifx\limits#2\limits
    \else
        \jb@returnAfterFi\jb@remove@percentCr#2\@nil
    \fi
}
\gdef\jb@urldef#1{
    \edef\@tempa{\jb@remove@percentCr#1%^^M\@nil}
    \immediate\write\jb@urlfile{
        \string\expandafter\string\urldef\string\csname\space
        jburl@\jb@bbl@key\string\endcsname\string\url\string{\@tempa\string}
    }
    \endgroup
}
\endgroup
\DeclareRobustCommand*\jburluse[1]{%
  \biburlprefix\csname jburl@#1\endcsname\biburlsuffix%
}
\newwrite\jb@urlfile
\InputIfFileExists{\jobname.url}{}{}
\newread\jb@tempfile
\newcommand*\testnosig{}%
{% no spaces or percents in this group! (Changing \endlinechar makes this easier).
\catcode`\ =12
\catcode`\%=12
\endlinechar\m@ne
\gdef\jb@signature@line{%%% jurabib url repository}
\gdef\jb@if@no@sigline#1#2{\ifx#1\jb@signature@line\else#2\fi}}
\newcommand*\jb@chk@overwrite[1]{%
    \bgroup
    \openin\jb@tempfile=#1\relax
        \let\do\@makeother \dospecials
        \endlinechar\m@ne
        \ifeof\jb@tempfile
            % \typeout{File `#1' doesn't exist}%
        \else
            \read\jb@tempfile to\@tempa
            \ifeof\jb@tempfile
                % \typeout{File `#1' is empty}%
            \else
                \jb@if@no@sigline{\@tempa}{%
                    \ClassError{jurabib}{%
                        file `#1' not written by jurabib%
                    }{%
                        This doesn't look like a file written by jurabib.^^J%
                        Please save any valuable information contained in this file^^J%
                        to another place.^^J%
                        If you hit RETURN now, the file will be overwritten.^^J%
                    }%
                }%
            \fi
        \fi
    \closein\jb@tempfile
    \egroup
    \immediate\openout\jb@urlfile#1
    \immediate\write\jb@urlfile{\jb@signature@line}%
    \AtEndDocument{\closeout\jb@urlfile}
}
\jb@chk@overwrite{\jobname.url}
\DeclareRobustCommand{\lookatprefix}{}%
\DeclareRobustCommand{\lookatsuffix}{}%
\newcommand*{\noibidem}{%
  \gdef\jb@@lastauthorcite{}%
  \gdef\jb@@lastannotatorcite{}%
  \gdef\jb@@lastpagecite{}%
}%
\newcommand*{\noidem}{%
  \gdef\jb@@last@@author{}%
  \gdef\jb@@last@@title{}%
}%
\newcommand*{\nextcitefull}[1]{%
 {\@for\@tempa:=#1\do{%
    \global\@namedef{\@tempa}{allnextfull}}}%
}%
\newcommand*{\nextciteshort}[1]{%
  {\@for\@tempa:=#1\do{%
    \global\@namedef{\@tempa}{allnextshort}}}%
}%
\newcommand*{\nextcitenotitle}[1]{%
  {\@for\@tempa:=#1\do{%
    \global\@namedef{\@tempa}{allnextnotitle}}}%
}%
\newcommand*{\nextcitereset}[1]{%
  {\@for\@tempa:=#1\do{%
    \global\@namedef{\@tempa}{}}}%
}%
\newcommand*{\citeswithoutentry}[1]{%
  {\@for\@tempa:=#1\do{%
    \global\@namedef{NOBIB@\@tempa}{suppress}}}%
}%
\newcommand*{\nofirstnameforcitation}{\jb@no@firstnametrue}%
\newcommand*{\jb@cite@title@types}{}%
\newcommand*{\jb@cite@notitle@types}{}%
\newcommand*{\citetitlefortype}[1]{\gdef\jb@cite@title@types{#1}}%
\newcommand*{\citenotitlefortype}[1]{\gdef\jb@cite@notitle@types{#1}}%
\newcommand*{\jb@cite@title@for@type@hook}{%
    \@for\@tempa:=\jb@cite@title@types\do{%
        \protected@edef\@tempb{\jb@@type}%
        \ifx\@tempa\@tempb
            \def\jb@@title@switch{1}%
        \fi
    }%
}%
\newcommand*{\jb@cite@no@title@for@type@hook}{%
    \@for\@tempa:=\jb@cite@notitle@types\do{%
        \protected@edef\@tempb{\jb@@type}%
        \ifx\@tempa\@tempb
            \def\jb@@title@switch{-1}%
        \fi
    }%
}%
\def\jb@@cite@fullfirst@switch{}%
\newcommand*{\jb@cite@full@first@types}{}%
\newcommand*{\citefullfirstfortype}[1]{\gdef\jb@cite@full@first@types{#1}}%
\newcommand*{\jb@cite@full@first@fortype@hook}{%
    \@for\@tempa:=\jb@cite@full@first@types\do{%
        \protected@edef\@tempb{\jb@@type}%
        \ifx\@tempa\@tempb
            \def\jb@@cite@fullfirst@switch{1}%
        \fi
    }%
}%
\citefullfirstfortype{article,book,booklet,commented,inbook,incollection,inproceedings,jurthesis,manual,mastersthesis,misc,periodical,phdthesis,proceedings,techreport,unpublished,www,archival}
\def\jb@@lookat@for@type@switch{}%
\newcommand*{\jb@lookat@types}{}%
\newcommand*{\lookatfortype}[1]{\gdef\jb@lookat@types{#1}}%
\newcommand*{\jb@lookat@fortype@hook}{%
    \@for\@tempa:=\jb@lookat@types\do{%
        \protected@edef\@tempb{\jb@@type}%
        \ifx\@tempa\@tempb
            \def\jb@@lookat@for@type@switch{1}%
        \fi
    }%
}%
\lookatfortype{article,book,booklet,commented,inbook,incollection,inproceedings,jurthesis,manual,mastersthesis,misc,periodical,phdthesis,proceedings,techreport,unpublished,www,archival}
\newcommand*{\jb@cite@title@work}{}%
\newcommand*{\citeworkwithtitle}[1]{\gdef\jb@cite@title@work{#1}}%
\newcommand*{\jb@cite@title@for@work@hook}{%
    \@for\@tempa:=\jb@cite@title@work\do{%
        \protected@edef\@tempb{\jb@@newauthorcite}%
        \ifx\@tempa\@tempb
            \def\jb@@mult@switch{1}%
        \fi
    }%
}%
\newcommand*{\jb@start@page@for@types}{}%
\newcommand*{\jb@start@page@for@types@arg}{}%
\newcommand*{\jb@start@page@for@type@hook}{%
    \@for\@tempa:=\jb@start@page@for@types\do{%
        \protected@edef\@tempb{\jb@@type}%
        \ifx\@tempa\@tempb
            \def\jb@start@page@for@types@arg{1}%
        \fi
    }%
}%
\newcommand*{\jb@formatted@year}{%
\nobreakspace\textup{\jbcitationyearformat{\jb@@year}}%
    \ifjb@oyear@in@citation\jb@formatted@oyear\fi
}%
\newcommand*{\jb@formatted@oyear}{%
\ifthenelse{\equal{\jb@@oyear}{}}{}{\unskip\unskip\textup{\jbcitationoyearformat{\jb@@year}}}%
}%
\DeclareRobustCommand{\jbyear}{% NEW 0.5c
  \ifjb@author@year
   \ifthenelse{\equal{\jb@@year}{}}{%
      \@ifundefined{NOYEAR@\jb@@newauthorcite}{%
        \global\@namedef{NOYEAR@\jb@@newauthorcite}{}%
        \jb@package@warningNoLine{\jb@pkg@name}{%
        No year for `\jb@@newauthorcite'!}}{\relax}%
        \let\jbcitationyearformat\@empty
   }{%
      \jb@formatted@year%
   }%
  \fi
}%
\DeclareRobustCommand{\bibYear}[1]{% only for jureco.bst
  \ifx\relax#1\relax\else
     \nobreakspace\bibfnfont{%
        \textup{%
            \ifjbweareinbib
                \jbbibyearformat{#1}%
            \else
                \jbcitationyearformat{#1}%
            \fi
        }%
     }%
  \fi
}%
\DeclareRobustCommand{\jbts}{\textsuperscript}%
\newcommand*{\bibleftcolumn}{6pc}%
\newcommand*{\bibcolumnsep}{1pc}%
\newcommand*{\bibrightcolumn}{\textwidth-\bibnumberwidth-\bibcolumnsep-\bibleftcolumn}%
\newcommand*{\bibleftcolumnadjust}{\raggedright}%
\newcommand*{\bibrightcolumnadjust}{\raggedright}%
\newcommand*{\bibleftcolumnstretch}{}%
\newcommand*{\bibrightcolumnstretch}{}%
\newcommand*{\bibtabularitemsep}{}%
\newcommand*{\bibaltformatalign}{\relax}%
\newcommand*{\jbdebug}{\jb@debugtrue
  \jb@info{*** Debugging ON ***}%
  \footnote{\textcolor[named]{Blue}{[volles Erstzitat]}}%
  \footnote{\textcolor[named]{Red}{[volles Wiederholungszitat]}}%
  \footnote{\textcolor[named]{Dandelion}{[Kurzzitat]}}%
  \footnote{\textcolor[named]{WildStrawberry}{[ibidem]}}%
  \footnote{\textcolor[named]{Gray}{[Titel ersetzt]}}%
  \setcounter{footnote}{0}%
}%
\DeclareRobustCommand{\jbhowsepannotatorlast}{{\normalfont\slash}}%
\DeclareRobustCommand{\jbhowsepbeforetitle}{\space}%
\DeclareRobustCommand{\jbhowsepbeforetitleae}{\jbhowsepbeforetitle}%
\DeclareRobustCommand{\jbhowsepbeforetitleibidemname}{,}%
\DeclareRobustCommand{\jbhowsepannotatorfirst}{~in: }%
\newcommand*{\jbbeforestartpagesep}{\space}%
\renewcommand*{\@biblabel}[1]{}%
\newcommand*{\jb@firstofseven}  [7]{#1}%
\newcommand*{\jb@secondofseven} [7]{#2}%
\newcommand*{\jb@thirdofseven}  [7]{#3}%
\newcommand*{\jb@fourthofseven} [7]{#4}%
\newcommand*{\jb@fifthofseven}  [7]{#5}%
\newcommand*{\jb@sixthofseven}  [7]{#6}%
\newcommand*{\jb@seventhofseven}[7]{#7}%
\def\jb@@author{\expandafter\jb@firstofseven\jb@tempa\@empty}% Never add \unskip HERE !!!!!
\def\jb@@shorttitle{\expandafter\jb@secondofseven\jb@tempa\@empty}% Never add \unskip HERE !!!!!
\def\jb@@fullname{\expandafter\jb@fifthofseven\jb@tempa\@empty}% Never add \unskip HERE !!!!!
\def\jb@@fulltitle{\expandafter\jb@sixthofseven\jb@tempa\@empty\unskip}%
\newcommand*{\jb@firstofnine}  [9]{#1}%
\newcommand*{\jb@secondofnine} [9]{#2}%
\newcommand*{\jb@thirdofnine}  [9]{#3}%
\newcommand*{\jb@fourthofnine} [9]{#4}%
\newcommand*{\jb@fifthofnine}  [9]{#5}%
\newcommand*{\jb@sixthofnine}  [9]{#6}%
\newcommand*{\jb@seventhofnine}[9]{#7}%
\newcommand*{\jb@eighthofnine} [9]{#8}%
\newcommand*{\jb@ninethofnine} [9]{#9}%
\def\jb@@mult@switch{\expandafter\jb@firstofnine\jb@tempb}%
\def\jb@@howcited{\expandafter\jb@secondofnine\jb@tempb}%
\def\jb@@type{\expandafter\jb@thirdofnine\jb@tempb}%
\def\jb@@year{\expandafter\jb@fourthofnine\jb@tempb}%
\def\jb@@edition{\expandafter\jb@fifthofnine\jb@tempb}%
\def\jb@@edition@switch{\expandafter\jb@sixthofnine\jb@tempb}%
\def\jb@@language{\expandafter\jb@seventhofnine\jb@tempb}%
\def\jb@@pages{\expandafter\jb@eighthofnine\jb@tempb}%
\def\jb@@apy{\expandafter\jb@ninethofnine\jb@tempb}%
\def\jb@@title{\expandafter\jb@firstofnine\jb@tempc}%
\def\jb@@gender{\expandafter\jb@secondofnine\jb@tempc}%
\def\jb@@oyear{\expandafter\jb@thirdofnine\jb@tempc}%
\def\jb@@aut@ed@switch{\expandafter\jb@fourthofnine\jb@tempc}%
\def\jb@@title@switch{}%
\newcommand*{\jb@extract}{%
   \protected@edef\jb@tempa{\csname b@\@citeb\@extra@b@citeb\endcsname}%
   \protected@edef\jb@tempb{\expandafter\jb@thirdofseven\jb@tempa\@empty}%
   \protected@edef\jb@tempc{\expandafter\jb@fourthofseven\jb@tempa\@empty}%
}%
\def\jb@use@fullcite{%
 \ifthenelse{\equal{\jb@@author}{empty}}{%
     \ifthenelse{\equal{\jb@@fullname}{\@empty}}{%
        \jb@@fulltitle%
     }{%
        \jb@@fullname\normalfont{\jbhowsepbeforetitle}\jb@@fulltitle\unskip%
     }%
 }{%
     \ifthenelse{\equal{\jb@@fullname}{\@empty}}{%
        \jbauthorfont{\jb@@author}\normalfont{\jbhowsepbeforetitle}\jb@@fulltitle%
     }{%
        \jb@@fullname\normalfont{\jbhowsepbeforetitle}\jb@@fulltitle\unskip%
     }%
 }%
}%
\newcommand*{\jb@extraspace}{\space}%
\@ifundefined{@extra@b@citeb}{\def\@extra@b@citeb{}}{}%
\providecommand\@newciteauxhandle{\@auxout}
\AtBeginDocument{\@ifundefined{newcites}{\global\let\@restore@auxhandle\relax}{}}
\def\@restore@auxhandle{\gdef\@newciteauxhandle{\@auxout}}
\providecommand\hyper@natlinkstart[1]{}
\providecommand\hyper@natlinkend{}
\providecommand\hyper@natanchorstart[1]{}
\providecommand\hyper@natanchorend{}
\def\hyper@jblinkstart{\hyper@natlinkstart}
\def\hyper@jblinkend{\hyper@natlinkend}
\def\hyper@jbanchorstart{\hyper@natanchorstart}
\def\hyper@jbanchorend{\hyper@natanchorend}
\def\NAT@parse{}
\def\Hy@reserved@a{}
\newcounter{jbbibcnt}
\newcounter{jbbibcnta}
\newcounter{idemcnt}% NEW 0.5e idem feature
\newcounter{bibnamereplace}%
\newcounter{citefull}%
\newcounter{opcit}%
\newcounter{jb@cites@in@footnote}
\newcommand*{\samepageibidemname}{\ibidemname}
\newcommand*{\samepageibidemmidname}{\ibidemmidname}
\newcommand*{\diffpageibidemname}{\ibidemname}
\newcommand*{\diffpageibidemmidname}{\ibidemmidname}
\newcommand*{\IbidemName}{\ifthenelse{\equal{\jb@@newpagecite}{\jb@@lastpagecite}}{\samepageibidemname}{\diffpageibidemname}}
\newcommand*{\IbidemMidName}{\ifthenelse{\equal{\jb@@newpagecite}{\jb@@lastpagecite}}{\samepageibidemmidname}{\diffpageibidemmidname}}
\newcommand*{\jb@@lastpagecite}{}%
\newcommand*{\jb@@lastannotatorcite}{}%
\newcommand*{\jb@@lastauthorcite}{}%
\newcommand*{\jb@getsecondarg}{}%
\long\def\jb@getsecondarg#1#2#3\@nil{#2}%
\newcommand*{\jb@simple@pageref@by@heiko}[1]{%
  \expandafter\expandafter\expandafter\jb@getsecondarg
  \csname r@#1\endcsname{??}\@nil}%
\newcommand*{\jb@checked@edition}{}%
\newcommand*{\jb@aftertitleedition}{}%
\newcommand*{\jb@handle@superscript@ed}{%
 \let\jb@checked@edition\@empty      % complete removal of superscript edition or
 %\let\jb@kerning@title@ed\@empty    % only removal of kerning?
 %\let\jb@kerning@notitle@ed\@empty  %
}%
\newcommand*{\jb@formatted@author}{%
    \ifjbcross
        \ifthenelse{%
            \equal{\jb@inside@author}{\jb@inside@editor}%
            \and\boolean{jb@idem}%
        }{%
            \jb@@fullname% contains `idem, editor'
        }{%
            \jbauthorfont{\jb@@author}\ifjb@yearafterauthor\jbyear\fi
        }%
    \else
        \jbauthorfont{\jb@@author}\ifjb@yearafterauthor\jbyear\fi
    \fi
}%
\newcommand*{\jb@formatted@co@author}{%
  \jbannotatorfont{\jb@@newannotatorcite}}%
\newcommand*{\jb@formatted@co@author@see}{%
    \textup{\jb@@newannotatorcite}\ifthenelse{\equal{\jb@@newannotatorcite}{}}{}{\space}}%
\newcommand*{\jb@formatted@co@author@in}{%
  \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{\relax}{%
  \jbannotatorfont{\jb@@newannotatorcite}\jbhowsepannotatorfirst}}%
\newcommand*{\jb@checked@title}{%
  \ifjbhum
    \ifthenelse{\equal{\jb@@type}{book}}{%
        \let\jbtitlefont\jbbtfont}{\let\jbtitlefont\jbapifont}%
  \fi
  \ifthenelse{\equal{\jb@@shorttitle}{}}{%
    \ifthenelse{%
        \not\boolean{jb@author@year}%
        \or
        \(
          \boolean{jb@all@titles}%
          \and\boolean{jb@author@year}%
        \)
    }{%
     \ifjb@no@title@replace\else
       \ifjb@noauthorforcitetitle\else
         \normalfont{\jbhowsepbeforetitle}%
       \fi
     \fi
     \ifjb@no@title@replace\else
      \@ifundefined{REPL@\jb@@newauthorcite}{%
       \global\@namedef{REPL@\jb@@newauthorcite}{}%
       \jb@package@warning{\jb@pkg@name}{%
         `shorttitle' for `\jb@@newauthorcite'\MessageBreak
         is missing -- replacing  with `title'\MessageBreak
         field}}{}%
       \ifjb@debug
         \textcolor[named]{Gray}{%
           \ifjb@debug@br[\fi
             \jbfulltitlefont{\jb@@title}%
           \ifjb@debug@br]\fi
         }%
       \else
         \jbfulltitlefont{\jb@@title}%
       \fi%
     \fi
    }{}%
  }{%
    \ifthenelse{%
        \not\boolean{jb@author@year}%
        \or
        \(
          \boolean{jb@all@titles}%
          \and\boolean{jb@author@year}%
        \)
    }{%
       \ifjb@noauthorforcitetitle\else
            \normalfont{\jbhowsepbeforetitle}%
       \fi
       \jbshorttitlefont{\jb@@shorttitle}%
    }{}%
    \@ifundefined{TITLE@\jb@@newauthorcite}{%
        \global\@namedef{TITLE@\jb@@newauthorcite}{used}%
    }{}%
  }%
}%
\newcommand*{\jb@checked@author}{%
   \ifthenelse{\equal{\jb@@fullname}{}}{%
      \ifthenelse{\equal{\jb@@author}{}}{%
          \relax
       }{%
          \jbauthorfont{\jb@@author}%
       }%
   }{%
      \jbauthorfont{\jb@@fullname}%
   }%
}%
\newcommand*{\jb@make@annotator@emph}{%
  \ifjb@dynamic@author@fonts%
    \let\jbannotatorfont\jbactualauthorfont%
    \let\jbauthorfont\jbauthorfontifannotator%
  \fi
}%
\newcommand*{\jb@make@author@emph}{%
  \ifjb@dynamic@author@fonts%
    \let\jbauthorfont\jbactualauthorfont%
    \let\jbannotatorfont\normalfont%
  \fi
}%
\newcommand*{\jb@relaxcommandsforfullcite}{%
 \let\IbidemName\@empty
 \let\jb@@author\@empty
 \let\jb@@title\@empty
 \let\jb@@shorttitle\relax
 \let\jbyear\@empty
 \let\jb@checked@edition\@empty
 \let\jb@@newannotatorcite\@empty
 \let\jbhowsepbeforetitle\@empty
 \let\jbapifont\@empty
 \let\jbbtfont\@empty
 \let\jb@formatted@author\@empty
}%
\newcommand*{\jb@checkperiod}[1]{\jb@periodfalse\jb@@checkperiod#1.\jb@@end}%
\newcommand*{\jb@@checkperiod}{}%
\long\def\jb@@checkperiod#1.#2\jb@@end{%
 \ifthenelse{\equal{#1}{}}{\jb@periodtrue\let\ecmd\relax}{%
 \ifthenelse{\equal{#2}{}}{\let\ecmd\relax}{%
 \def\ecmd{\jb@@checkperiod#2\jb@@end}}}\ecmd}%
\newlength{\jbbibhang}
\setlength{\jbbibhang}{2.5em}
\newlength{\bibnumberwidth}
\settowidth{\bibnumberwidth}{8888.\,}
\DeclareRobustCommand{\jb@checked@bibetal}{%
 \ifjb@bibetal
    \unskip\nobreakspace%
     \ifjb@cite@no@title
        \ifx\jb@@newpagecite\@empty
            \bibIMfont{\etalnamenodot}%
        \else
            \bibIMfont{\etalname}%
        \fi
     \else
        \bibIMfont{\etalname}%
     \fi
 \fi
}
\DeclareRobustCommand{\Bibetal}{\jb@checked@bibetal\global\jbetaltrue}
\newcommand*{\jb@checked@etal}{%
  \let\@latex@info\@gobble
  \DeclareRobustCommand{\Bibetal}{%
      \bibIMfont{\etalname}%
      \ifthenelse{\equal{\jb@@newpagecite}{}%
                  \or
                  \(
                      \boolean{jb@firstcite@full}%
                      \and
                      \equal{\jb@@newpagecite}{}%
                      \and
                      \equal{\@nameuse{citefull@\jb@@newauthorcite}}{citefull}%
                  \)
      }{%
           \ifthenelse{%
                \not\boolean{jbcross}% NEW, otherwise missing footnote period for citations containing crossref's
                \and
                \not\boolean{jb@lookat}%
                \and
                \not\boolean{jb@author@year}%
                \and
                \not\boolean{jb@fullcite@again}%
                \and
                \not\equal{\jb@@mult@switch}{1}%
           }{%
                \global\jb@footnote@periodfalse
           }{}%
      }{}%
 }%
}%
\newcommand*{\jb@missing@ldf@files}[1]{\ClassError{\jb@pkg@name}{You are in trouble here.\MessageBreak%
    File `#1' not found}{Make sure that all .ldf files are living in the jurabib directory!}}%
\gdef\@bibsfrench{\InputIfFileExists{frjbbib.ldf}{}{\jb@missing@ldf@files{frjbbib.ldf}}}%
\gdef\@bibsgerman{\InputIfFileExists{dejbbib.ldf}{}{\jb@missing@ldf@files{dejbbib.ldf}}}%
\gdef\@bibsaustrian{\InputIfFileExists{dejbbib.ldf}{}{\jb@missing@ldf@files{dejbbib.ldf}}\def\janname{J{^^e4}nner}}%
\gdef\@bibsenglish{\InputIfFileExists{enjbbib.ldf}{}{\jb@missing@ldf@files{enjbbib.ldf}}}%
\gdef\@bibsdutch{\InputIfFileExists{dujbbib.ldf}{}{\jb@missing@ldf@files{dujbbib.ldf}}}%
\gdef\@bibsspanish{\InputIfFileExists{spjbbib.ldf}{}{\jb@missing@ldf@files{spjbbib.ldf}}}%
\gdef\@bibsportuguese{\InputIfFileExists{ptjbbib.ldf}{}{\jb@missing@ldf@files{ptjbbib.ldf}}}%
\gdef\@bibsitalian{\InputIfFileExists{itjbbib.ldf}{}{\jb@missing@ldf@files{itjbbib.ldf}}}%
\gdef\@bibsnorsk{\InputIfFileExists{nojbbib.ldf}{}{\jb@missing@ldf@files{nojbbib.ldf}}}%
\gdef\@bibsfinnish{\InputIfFileExists{fijbbib.ldf}{}{\jb@missing@ldf@files{fijbbib.ldf}}}%
\gdef\@bibsdanish{\InputIfFileExists{dajbbib.ldf}{}{\jb@missing@ldf@files{dajbbib.ldf}}}%
\newcommand*{\jb@kv@warning}[2]{%
  \jb@package@warningNoLine{\jb@pkg@name}{%
   unrecognized value `#1'\MessageBreak
   for key `#2' ignored}}
\define@key{jb}{authorformat}{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{smallcaps}}{%
    \jb@kv@recognizedtrue
    \renewcommand*{\jbauthorfont}{\textsc}%
    \renewcommand*{\jbauthorfnfont}{\textsc}%
    \renewcommand*{\jborgauthorfont}{\textsc}%
    \renewcommand*{\jbannotatorfont}{\textsc}%
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{italic}}{%
    \jb@kv@recognizedtrue
    \renewcommand*{\jbauthorfont}{\textit}%
    \renewcommand*{\jbauthorfnfont}{\textit}%
    \renewcommand*{\jborgauthorfont}{\textit}%
    \renewcommand*{\jbannotatorfont}{\textit}%
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{dynamic}}{%
    \jb@kv@recognizedtrue
    \jb@dynamic@author@fontstrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{citationreversed}}{%
    \jb@kv@recognizedtrue
    \jb@reverse@names@in@citationtrue
    \jb@reverse@all@namesfalse
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{firstnotreversed}}{%
    \jb@kv@recognizedtrue
    \jb@first@author@reversedtrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{allreversed}}{%
    \jb@kv@recognizedtrue
    \jb@reverse@all@namestrue
    \global\let\bibnf\bibrnf
    \global\let\bibenf\bibrenf
    \global\let\biblenf\bibrlenf
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{reducedifibidem}}{%
    \jb@kv@recognizedtrue
    \jb@ibidem@with@short@nametrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{year}}{%
    \jb@kv@recognizedtrue
    \jb@author@yeartrue
    \jb@yearafterauthortrue
    \jbshowbibextralabel
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{indexed}}{%
    \jb@kv@recognizedtrue
    \jb@indextrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{and}}{%
    \jb@kv@recognizedtrue
    \bibsall{%
      \DeclareRobustCommand\jbbtasep  { \bibIMfont{\textandname} }%
      \DeclareRobustCommand\jbbfsasep {\unskip\bibIMfont{\commaname} }%
      \DeclareRobustCommand\jbbstasep { \bibIMfont{\textandname} }%
      \DeclareRobustCommand\bibbtasep { \bibIMfont{\bibandname} }%
      \DeclareRobustCommand\bibbfsasep{\unskip\bibIMfont{\commaname} }%
      \DeclareRobustCommand\bibbstasep{ \bibIMfont{\bibandname} }%
      \DeclareRobustCommand\jbbtesep  { \bibEIMfont{\texteandname} }%
      \DeclareRobustCommand\jbbfsesep {\unskip\bibEIMfont{\commaename} }%
      \DeclareRobustCommand\jbbstesep { \bibEIMfont{\texteandname} }%
      \DeclareRobustCommand\bibbtesep { \bibEIMfont{\bibeandname} }%
      \DeclareRobustCommand\bibbfsesep{\unskip\bibEIMfont{\commaename} }%
      \DeclareRobustCommand\bibbstesep{ \bibEIMfont{\bibeandname} }%
    }%
    \addto\@bibsenglish{%
      \DeclareRobustCommand\jbbtasep  { \bibIMfont{\textandname} }%
      \DeclareRobustCommand\jbbfsasep {\unskip\bibIMfont{\commaname} }%
      \DeclareRobustCommand\jbbstasep {\unskip\bibIMfont{\commaname{} \textandname} }%
      \DeclareRobustCommand\bibbtasep { \bibIMfont{\bibandname} }%
      \DeclareRobustCommand\bibbfsasep{\unskip\bibIMfont{\commaname} }%
      \DeclareRobustCommand\bibbstasep{\unskip\bibIMfont{\commaname{} \bibandname} }%
      \DeclareRobustCommand\jbbtesep  { \bibEIMfont{\texteandname} }%
      \DeclareRobustCommand\jbbfsesep {\unskip\bibEIMfont{\commaename} }%
      \DeclareRobustCommand\jbbstesep {\unskip\bibEIMfont{\commaename{} \texteandname} }%
      \DeclareRobustCommand\bibbtesep { \bibEIMfont{\bibeandname} }%
      \DeclareRobustCommand\bibbfsesep{\unskip\bibEIMfont{\commaename} }%
      \DeclareRobustCommand\bibbstesep{\unskip\bibEIMfont{\commaename{} \bibeandname} }%
    }%
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{abbrv}}{%
    \jb@kv@recognizedtrue
    \jb@abbrvtrue
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{authorformat}\fi
 }%
}%
\define@key{jb}{annotatorformat}{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{italic}}{%
    \jb@kv@recognizedtrue
    \renewcommand*{\jbannotatorfont}{\textit}%
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{normal}}{%
    \jb@kv@recognizedtrue
    \renewcommand*{\jbannotatorfont}{\normalfont}%
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{annotatorformat}\fi
 }%
}%
\define@key{jb}{superscriptedition}[commented]{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{all}}{%
    \jb@kv@recognizedtrue\jb@ssed@alltrue}{}%
  \ifthenelse{\equal{\jb@val}{commented}}{%
    \jb@kv@recognizedtrue\jb@ssed@commentedtrue}{}%
  \ifthenelse{\equal{\jb@val}{switch}}{%
    \jb@kv@recognizedtrue\jb@ssed@swtrue}{}%
  \ifthenelse{\equal{\jb@val}{bib}\or\equal{\jb@val}{address}}{%
    \jb@kv@recognizedtrue\jb@bibssedtrue
    \let\jbedition\@gobble}{}%
  \ifthenelse{\equal{\jb@val}{multiple}}{%
    \jb@kv@recognizedtrue\jb@ssed@mult@workstrue}{}%
  \ifthenelse{\equal{\jb@val}{year}}{\jb@kv@recognizedtrue
      \renewcommand*{\jbssedbd}{\textsuperscript}%
      \let\jbedition\@gobble\DeclareRobustCommand{\apyformat}[1]{%
      \unskip\unskip\space\bibapyldelim{}##1\bibapyrdelim{}}
  }{}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{superscriptedition}\fi
 }%
}%
\define@key{jb}{titleformat}{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{italic}}{%
    \jb@kv@recognizedtrue
    \DeclareRobustCommand{\jbtitlefont}{\textit}%
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{all}}{%
    \jb@kv@recognizedtrue
    \ifjb@no@title@replace
        \global\jb@no@title@replacefalse
        \jb@package@warningNoLine{\jb@pkg@name}{%
        `titleformat=all' and `titleformat=noreplace'\MessageBreak
         cannot be used together. I will replace missing\MessageBreak
         shorttitles to avoid ambiguity of citations}%
    \fi
    \jb@all@titlestrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{noreplace}}{%
    \jb@kv@recognizedtrue
    \jb@no@title@replacetrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{commasep}}{%
    \jb@kv@recognizedtrue
    \jb@before@title@separatortrue
    \renewcommand*{\jbhowsepbeforetitle}{, }%
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{colonsep}}{%
    \jb@kv@recognizedtrue
    \jb@before@title@separatortrue
    \renewcommand*{\jbhowsepbeforetitle}{: }%
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{titleformat}\fi
 }%
}%
\define@key{jb}{din}[true]{%
  \AtEndOfPackage{%
   \DeclareRobustCommand{\biblnfont}{\textsc}%
   \DeclareRobustCommand{\bibfnfont}{\normalfont}%
   \DeclareRobustCommand{\bibbtfont}{\textit}%
   \DeclareRobustCommand{\bibtfont}{\textit}%
   \DeclareRobustCommand{\bibjtfont}{\textit}%
   \DeclareRobustCommand{\bibapifont}{\normalfont}%
   \DeclareRobustCommand{\bibatsep}{.}%
   \DeclareRobustCommand{\bibbtsep}{\inname{} }%
   \DeclareRobustCommand{\bibjtsep}{\inname{} }%
  }%
}%
\define@key{jb}{howcited}[normal]{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{all}}{%
    \jb@kv@recognizedtrue
    \jb@howcitedtrue
    \jb@howcited@alltrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{normal}}{%
    \jb@kv@recognizedtrue
    \jb@howcitedtrue
    \jb@howcited@normaltrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{multiple}}{%
    \jb@kv@recognizedtrue
    \jb@howcitedtrue
    \jb@howcited@multipletrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{compare}}{%
    \jb@kv@recognizedtrue
    \jb@howcitedtrue
    \jb@howcited@comparetrue
  }{\relax}%
 \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{howcited}\fi
 }%
 \renewcommand*{\jbrealcitation}[2]{%
  \@ifundefined{b@##2@C}{\global\@namedef{b@##2@C}{cite}}{\relax}%
  \ifthenelse{\equal{##1}{citetitle}}{%
    \global\@namedef{b@##2@C}{citetitle}}{\relax}%
  \ifthenelse{\equal{##1}{citenotitle}}{%
    \global\@namedef{b@##2@C}{citenotitle}}{\relax}}%
}%
\define@key{jb}{annotatorfirstsep}{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{#1}{comma}}{%
      \jb@kv@recognizedtrue
      \jb@annotator@lastfalse
      \renewcommand*{\jbhowsepannotatorfirst}{, }%
  }{\relax}%
  \ifthenelse{\equal{#1}{in}}{%
      \jb@kv@recognizedtrue
      \jb@annotator@lastfalse
      \renewcommand*{\jbhowsepannotatorfirst}{~in: }%
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{#1}{annotatorfirstsep}\fi
}%
\define@key{jb}{annotatorlastsep}{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{#1}{divis}}{%
      \jb@kv@recognizedtrue
      \jb@annotator@lasttrue
      \renewcommand*{\jbhowsepannotatorlast}{--}%
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{#1}{annotatorlastsep}\fi
}%
\define@key{jb}{commabeforerest}[true]{\jb@comma@before@resttrue\renewcommand*{\jbbeforestartpagesep}{,\space}}%
\define@key{jb}{bibformat}{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{compress}}{%
    \jb@kv@recognizedtrue
    \jb@compressed@bibtrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{raggedright}}{%
    \jb@kv@recognizedtrue
    \addto\jbonlyforbib{\raggedright}
    \let\bibaltformatalign\raggedright
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{tabular}}{%
    \jb@kv@recognizedtrue
    \jb@tabulartrue\jb@bib@hangfalse
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{numbered}}{%
    \jb@kv@recognizedtrue
    \jb@numbered@bibtrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{ibidem}}{%
    \jb@kv@recognizedtrue
    \jb@bibformat@ibidemtrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{ibidemalt}}{%
    \jb@kv@recognizedtrue
    \jb@bibformat@ibidemtrue
    \jbaltformattrue
    \jb@compressed@bibtrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{nohang}}{%
    \jb@kv@recognizedtrue
    \jb@bib@hangfalse
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{bibformat}\fi
 }%
}%
\define@key{jb}{citefull}[all]{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{first}}{%
    \jb@kv@recognizedtrue
    \jb@change@fonts@for@fullcitetrue
    \jb@firstcite@fulltrue
    \jb@allow@nobibtrue
    \global\jb@annotator@lastfalse
    \ifjb@see\else\renewcommand*{\jbhowsepannotatorfirst}{~in: }\fi
    \jb@all@fullfalse
  }{%
    \ifthenelse{\equal{\jb@val}{all}}{%
      \jb@kv@recognizedtrue
      \jb@all@fulltrue
      \jb@allow@nobibtrue
      \global\jb@howcitedfalse
      \global\jb@annotator@lastfalse
      \ifjb@see\else\renewcommand*{\jbhowsepannotatorfirst}{~in: }\fi
      \jb@firstcite@fullfalse
    }{\relax}%
  }%
  \ifthenelse{\equal{\jb@val}{chapter}}{%
    \jb@kv@recognizedtrue
    \@ifundefined{chapter}{%
     \ClassError{\jb@pkg@name}{%
      Sorry, `citefull=chapter' makes no sense for\MessageBreak
      classes without \string\chapter%
     }{Try `citefull=section' for an article class}}{}%
    \setkeys{jb}{citefull=first}%
    \@addtoreset{citefull}{chapter}%
    \def\jb@resetfor{chapter}%
    \def\jb@reset@look@label@for{\thechapter}% for lookat
  }{%
      \ifthenelse{\equal{\jb@val}{section}}{%
        \jb@kv@recognizedtrue
        \@ifundefined{chapter}{}{%
         \jb@package@warningNoLine{\jb@pkg@name}{%
          `citefull=section' was designed for use with\MessageBreak
          an article class, note that it's not well\MessageBreak
          tested for use with book or report classes}}%
        \setkeys{jb}{citefull=first}%
        \@addtoreset{citefull}{section}%
        \def\jb@resetfor{section}%
        \def\jb@reset@look@label@for{\thesection}% for lookat, to check
      }{%
          \ifthenelse{\equal{\jb@val}{false}}{%
              \jb@kv@recognizedtrue
              \global\jb@all@fullfalse
              \global\jb@allow@nobibfalse
              \global\jb@firstcite@fullfalse
          }{\relax}%
      }%
  }%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{citefull}\fi
 }%
}%
\define@key{jb}{see}[true]{%
    \jb@seetrue\jb@annotator@lastfalse
    \renewcommand*{\jbhowsepannotatorfirst}{}%
    \renewcommand*{\jbannotatorfont}{\normalfont}%
    \let\jb@formatted@co@author\jb@formatted@co@author@see
    \let\jb@formatted@co@author@in\jb@formatted@co@author@see
}%
\define@key{jb}{ibidem}[strict]{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{false}}{%
    \jb@kv@recognizedtrue
    \AtBeginDocument{%
        \global\jb@ibidemfalse
        \global\jb@ibidem@pagewisefalse
        \global\jb@ibidem@double@pagewisefalse
        \global\jb@ibidem@with@namefalse
        \global\jb@ibidem@with@name@and@titlefalse
    }%
  }{%
    \ifthenelse{\equal{\jb@val}{strict}}{%
        \jb@kv@recognizedtrue
        \jb@ibidemtrue
        \jb@ibidem@pagewisetrue
        \jb@ibidem@double@pagewisefalse
    }{%
      \ifthenelse{\equal{\jb@val}{strictdoublepage}}{%
            \jb@kv@recognizedtrue
            \jb@ibidemtrue
            \jb@ibidem@pagewisetrue
            \if@twoside\jb@ibidem@double@pagewisetrue
            \else\jb@ibidem@double@pagewisefalse\fi
      }{%
          \ifthenelse{\equal{\jb@val}{nostrict}}{%
                \jb@kv@recognizedtrue
                \jb@ibidemtrue
                \jb@ibidem@pagewisefalse
                \jb@ibidem@double@pagewisefalse
          }{%
          \ifthenelse{\equal{\jb@val}{name}}{%
                \jb@kv@recognizedtrue
                \setkeys{jb}{citefull=first}%
                \jb@ibidemfalse
                \global\jb@ibidem@with@nametrue
          }{%
              \ifthenelse{\equal{\jb@val}{name&title}}{%
                    \jb@kv@recognizedtrue
                    \setkeys{jb}{citefull=first}%
                    \jb@ibidemfalse
                    \jb@ibidem@with@nametrue
                    \jb@ibidem@with@name@and@titletrue
              }{%
                  \ifthenelse{\equal{\jb@val}{name&title&auto}}{%
                        \jb@kv@recognizedtrue
                        \setkeys{jb}{citefull=first}%
                        \jb@ibidemfalse
                        \jb@ibidem@with@nametrue
                        \jb@ibidem@with@name@and@title@autotrue
              }{\relax}}}}}}}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{ibidem}\fi
 }%
}%
\define@key{jb}{idem}[strict]{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{false}}{%
    \jb@kv@recognizedtrue
    \AtBeginDocument{%
        \global\jb@idemfalse
        \global\jb@idem@pagewisefalse
        \global\jb@idem@double@pagewisefalse
    }%
  }{%
    \ifthenelse{\equal{\jb@val}{strict}}{%
        \jb@kv@recognizedtrue
        \jb@idemtrue
        \jb@idem@pagewisetrue
        \jb@idem@double@pagewisefalse
    }{%
      \ifthenelse{\equal{\jb@val}{strictdoublepage}}{%
            \jb@kv@recognizedtrue
            \jb@idemtrue
            \jb@idem@pagewisetrue
            \if@twoside\jb@idem@double@pagewisetrue
            \else\jb@idem@double@pagewisefalse\fi
      }{%
          \ifthenelse{\equal{\jb@val}{nostrict}}{%
                \jb@kv@recognizedtrue
                \jb@idemtrue
                \jb@idem@pagewisefalse
                \jb@idem@double@pagewisefalse
          }{\relax}}}}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{idem}\fi
 }%
}%
\define@key{jb}{footnotes}{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{marginal}}{%
    \jb@kv@recognizedtrue
    \newlength\jbfootnoteindent
    \setlength\jbfootnoteindent{\parindent}%
    \newlength\jbfootnotenumwidth
    \settowidth\jbfootnotenumwidth{99}%
    \newcommand*{\jbfootnotenumalign}{r}%
    \newcommand*{\jbfootnoteformat}{\textsuperscript}%
    \renewcommand\@makefntext[1]{\@setpar{\@@par
      \@tempdima\hsize\advance\@tempdima-\jbfootnoteindent
      \parshape\@ne\jbfootnoteindent\@tempdima}%
      \parindent 1em\par\noindent
      \makebox[0pt][r]{\makebox[\jbfootnoteindent][r]{%
      \makebox[\jbfootnotenumwidth][\jbfootnotenumalign]{%
      \jbfootnoteformat{\@thefnmark}}\hspace*{\fill}}}##1}%
    \AtBeginDocument{%
     \ifjb@endnotes
        \def\enoteformat{\@setpar{\@@par\@tempdima\hsize
        \advance\@tempdima-\jbfootnoteindent
        \parshape\@ne\jbfootnoteindent\@tempdima}%
        \parindent 1em\par\noindent
        \makebox[0pt][r]{\makebox[\jbfootnoteindent][r]{%
         \makebox[\jbfootnotenumwidth][\jbfootnotenumalign]{%
         \jbfootnoteformat{\@theenmark}}\hspace*{\fill}}}}%
     \fi
    }%
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{footnotes}\fi
 }%
}%
\define@key{jb}{jurabiborder}[true]{\jb@old@ordertrue}%
\define@key{jb}{round}[true]{%
  \renewcommand*{\jb@open}{(}%
  \renewcommand*{\jb@close}{)}%
}%
\define@key{jb}{square}[true]{%
  \renewcommand*{\jb@open}{[}%
  \renewcommand*{\jb@close}{]}%
}%
\define@key{jb}{lookat}[true]{\jb@lookattrue}%
\define@key{jb}{crossref}[normal]{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{dynamic}}{%
      \jb@kv@recognizedtrue
      \global\jb@dynamic@crossrefstrue
      \setkeys{jb}{crossref=long}%
  }{%
      \ifthenelse{\equal{\jb@val}{short}}{%
          \jb@kv@recognizedtrue
          \AtBeginDocument{%
           \ifjb@dynamic@crossrefs
               \renewcommand*{\bibcrossrefcite}{\citetitle}%
               \renewcommand*{\bibcrossrefciteagain}{\cite}%
               \renewcommand*{\bibincollcrossrefcite}{\citetitle}%
               \renewcommand*{\bibincollcrossrefciteagain}{\cite}%
               \let\jbedbyincollcrossrefcite\jbedbyincollcrossrefshortnoapy
               \let\jbedbyincollcrossrefciteagain\jbedbyincollcrossrefshort
           \else
               \renewcommand*{\bibcrossrefcite}{\cite}%
               \renewcommand*{\bibcrossrefciteagain}{\cite}%
               \renewcommand*{\bibincollcrossrefcite}{\cite}%
               \renewcommand*{\bibincollcrossrefciteagain}{\cite}%
               \let\jbedbyincollcrossrefcite\jbedbyincollcrossrefshort
               \let\jbedbyincollcrossrefciteagain\jbedbyincollcrossrefshort
           \fi
          }%
      }{%
          \ifthenelse{\equal{\jb@val}{normal}}{%
              \jb@kv@recognizedtrue
              \AtBeginDocument{%
               \ifjb@dynamic@crossrefs
                   \renewcommand*{\bibcrossrefcite}{\citetitle}%
                   \renewcommand*{\bibincollcrossrefcite}{\citetitle}%
                   \renewcommand*{\bibcrossrefciteagain}{\cite}%
                   \renewcommand*{\bibincollcrossrefciteagain}{\cite}%
                   \let\jbedbyincollcrossrefcite\jbedbyincollcrossrefshortwithapy
                   \let\jbedbyincollcrossrefciteagain\jbedbyincollcrossrefshortnoapy
               \else
                   \renewcommand*{\bibcrossrefcite}{\citetitle}%
                   \renewcommand*{\bibincollcrossrefcite}{\citetitle}%
                   \renewcommand*{\bibcrossrefciteagain}{\citetitle}%
                   \renewcommand*{\bibincollcrossrefciteagain}{\citetitle}%
                   \let\jbedbyincollcrossrefcite\jbedbyincollcrossrefshortwithapy
                   \let\jbedbyincollcrossrefciteagain\jbedbyincollcrossrefshortwithapy
               \fi
              }%
          }{%
              \ifthenelse{\equal{\jb@val}{long}}{%
                  \jb@kv@recognizedtrue
                  \AtBeginDocument{%
                   \ifjb@dynamic@crossrefs
                       \renewcommand*{\bibcrossrefcite}{\fullcite}%
                       \renewcommand*{\bibincollcrossrefcite}{\fullcite}%
                       \renewcommand*{\bibcrossrefciteagain}{\citetitle}%
                       \renewcommand*{\bibincollcrossrefciteagain}{\citetitle}%
                       \let\jbedbyincollcrossrefcite\jbedbyincollcrossreflong
                       \let\jbedbyincollcrossrefciteagain\jbedbyincollcrossrefshortwithapy
                   \else
                       \renewcommand*{\bibcrossrefcite}{\fullcite}%
                       \renewcommand*{\bibincollcrossrefcite}{\fullcite}%
                       \renewcommand*{\bibcrossrefciteagain}{\fullcite}%
                       \renewcommand*{\bibincollcrossrefciteagain}{\fullcite}%
                       \let\jbedbyincollcrossrefcite\jbedbyincollcrossreflong
                       \let\jbedbyincollcrossrefciteagain\jbedbyincollcrossreflong
                   \fi
                  }%
          }{\relax}}}}%
 \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{crossref}\fi
 }%
}%
\define@key{jb}{pages}{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{format}}{%
      \jb@kv@recognizedtrue
      \jb@formatted@pagestrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{always}}{%
      \jb@kv@recognizedtrue
      \jb@always@pagerangestrue
  }{\relax}%
  \ifthenelse{\equal{\jb@val}{test}}{%
      \jb@kv@recognizedtrue
      \jb@tested@pagerangestrue
  }{\relax}%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{pages}\fi
 }%
}%
\define@key{jb}{oxford}[true]{%
  \jb@kv@recognizedtrue
  \global\jbhumtrue
  \global\jboxfordtrue\global\jbchicagofalse
  \setkeys{jb}{%
      authorformat={citationreversed},see,%
      titleformat=commasep,%
  }%
  \jbdotafterbibentry
  \AtEndOfPackage{%
   \ifjboxford
   \ifjb@biblikecite\else
    \jb@info{*** jurabib set up for oxford style ***}%
    \renewcommand*{\bibfnfont}{}%                 first name font
    \renewcommand*{\biblnfont}{}%                 last name font
    \renewcommand*{\bibefnfont}{}%                editor first name font
    \renewcommand*{\bibelnfont}{}%                editor last name font
    \renewcommand*{\bibtfont}{\textit}%           title font
    \renewcommand*{\bibbtfont}{\textit}%          booktitle font
    \renewcommand*{\bibjtfont}{\textit}%          journal title font
    \renewcommand*{\bibapifont}[1]{`##1'}%        bib article/incollection title font
    \renewcommand*{\jbapifont}[1]{`##1'}%         text article/incollection title font
    \renewcommand*{\jbtitlefont}{}%               text title font
    \renewcommand*{\bibansep}{,}%                 author name sep
    \renewcommand*{\bibaesep}{, }%                after editor sep
    \renewcommand*{\bibatsep}{,}%                 after title sep
    \DeclareRobustCommand{\bibapyldelim}{(}%      always parentheses for oxford!
    \DeclareRobustCommand{\bibapyrdelim}{)}%      always parentheses for oxford!
    \DeclareRobustCommand{\dateldelim}{(}%        enclose the date in parentheses
    \DeclareRobustCommand{\daterdelim}{)}%        enclose the date in parentheses
    \renewcommand*{\bibbtasep}{ \ }%              between two authors sep
    \renewcommand*{\bibbfsasep}{, }%              between first and second author sep
    \renewcommand*{\bibbstasep}{ \ }%             between second and third author sep
    \renewcommand*{\bibbtesep}{ \ }%              between two editors sep
    \renewcommand*{\bibbfsesep}{, }%              between first and second editor sep
    \renewcommand*{\bibbstesep}{ \ }%             between second and third editor sep
    \renewcommand*{\bibbtsep}{\inname{} }%        booktitle sep
    \renewcommand*{\jb@cr@open}{}%                crossref left delimiter
    \renewcommand*{\jb@cr@close}{}%               crossref right delimiter
    \renewcommand*{\jb@art@cr@open}{}%            article crossref left delimiter
    \renewcommand*{\jb@art@cr@close}{}%           article crossref right delimiter
    \renewcommand*{\jb@incoll@cr@open}{}%         incoll crossref left delimiter
    \renewcommand*{\jb@incoll@cr@close}{}%        incoll crossref right delimiter
    \renewcommand*{\bibaldelim}{(}%               article year left delimiter
    \renewcommand*{\bibardelim}{)}%               article year right delimiter
   \fi\fi
  }%
  \addto\jbonlyforbib{\renewcommand*{\bibansep}{, }}% make sure that a space appear
  \DeclareRobustCommand{\artnumberformat}[1]{\unskip:##1}%
  \ifjb@kv@recognized\else\jb@kv@warning{#1}{oxford}\fi
}%
\define@key{jb}{chicago}[true]{%
  \jb@kv@recognizedtrue
  \global\jbchicagotrue\global\jboxfordfalse
  \setkeys{jb}{%
      authorformat={citationreversed,firstnotreversed},edby,see,%
      bibformat=ibidem,%
      citefull=first,%
      titleformat=commasep,%
      commabeforerest,%
  }%
  \jb@package@warningNoLine{%
    'chicago' style is still experimental! Do not use together with jox.bst!%
  }%
  \jbdotafterbibentry%
  \AtEndOfPackage{%
   \ifjbchicago
   \ifjb@biblikecite\else
    \jb@info{*** jurabib set up for chicago style ***}%
    \renewcommand*{\bibfnfont}{}%                                first name font
    \renewcommand*{\biblnfont}{}%                                last name font
    \renewcommand*{\bibefnfont}{}%                               editor first name font
    \renewcommand*{\bibelnfont}{}%                               editor last name font
    \renewcommand*{\bibtfont}{\textit}%                          title font
    \renewcommand*{\bibbtfont}{\textit}%                         booktitle font
    \renewcommand*{\bibjtfont}{\textit}%                         journal title font
    \renewcommand*{\bibapifont}[1]{``##1''}%                     bib article/incollection title font
    \renewcommand*{\bibsnfont}{}%                                series name font
    \renewcommand*{\jbapifont}[1]{``##1''}%                      text article/incollection title font
    \renewcommand*{\jbtitlefont}{}%                              text title font
    \renewcommand*{\bibansep}{. }%                               author name sep
    \renewcommand*{\bibaesep}{, }%                               after editor sep
    \renewcommand*{\bibatsep}{,}%                                after title sep
    \renewcommand*{\bibbdsep}{,}%                                before date sep
    \renewcommand*{\bibbtasep}{ \bibIMfont{\bibandname} }%       between two authors sep
    \renewcommand*{\bibbfsasep}{\unskip\bibIMfont{\commaname} }% between first and second author sep
    \renewcommand*{\bibbstasep}{ \bibIMfont{\bibandname} }%      between second and third author sep
    \renewcommand*{\bibbtesep}{ \bibEIMfont{\bibandname} }%      between two editors sep
    \renewcommand*{\bibbfsesep}{\unskip\bibEIMfont{\commaname} }%between first and second editor sep
    \renewcommand*{\bibbstesep}{ \bibEIMfont{\bibandname} }%     between second and third editor sep
    \renewcommand*{\jbbtasep}{ \bibIMfont{\textandname} }%       between two authors sep
    \renewcommand*{\jbbfsasep}{\unskip\bibIMfont{\commaname} }%  between first and second author sep
    \renewcommand*{\jbbstasep}{ \bibIMfont{\textandname} }%      between second and third author sep
    \renewcommand*{\jbbtesep}{ \bibEIMfont{\texteandname} }%     between two editors sep
    \renewcommand*{\jbbfsesep}{\unskip\bibEIMfont{\commaename} }%between first and second editor sep
    \renewcommand*{\jbbstesep}{ \bibEIMfont{\texteandname} }%    between second and third editor sep
    \renewcommand*{\bibbtsep}{\inname{} }%                       booktitle sep
    \renewcommand*{\jb@cr@open}{}%                               crossref left delimiter
    \renewcommand*{\jb@cr@close}{}%                              crossref right delimiter
    \renewcommand*{\jb@art@cr@close}{}%                          article crossref left delimiter
    \renewcommand*{\jb@art@cr@close}{}%                          article crossref right delimiter
    \renewcommand*{\jb@incoll@cr@open}{}%                        incoll crossref left delimiter
    \renewcommand*{\jb@incoll@cr@close}{}%                       incoll crossref right delimiter
    \renewcommand*{\bibaldelim}{(}%                              article year left delimiter
    \renewcommand*{\bibardelim}{)}%                              article year right delimiter
    \renewcommand*{\artnumberformat}[1]{,\space{}no.~##1}%       article number format
    \renewcommand*{\pernumberformat}[1]{,\space{}no.~##1}%       periodical format
    \renewcommand*{\edbysep}{, }%
    \def\bibauthormultiple{%
        \stepcounter{multiple@author}% to suppress inside bibliographic entry
        \leavevmode\vrule height 2pt depth -1.6pt width 3em\hspace{1pt}.\space}%
    \DeclareRobustCommand{\jbnote}[2]{%
        \ifjbweareinbib
            \unskip\unskip\ifthenelse{\equal{##1}{1}}{\bibatsep{} ##2}{##2}%
        \else
            \unskip\unskip%
        \fi
    }%
    \ifjbweareinbib\else
      \renewcommand*{\bibapyldelim}{\unskip\space(}%
      \renewcommand*{\bibapyrdelim}{)}%
    \fi
    \addto\jbonlyforbib{%
      \DeclareRobustCommand\incollinname{\inname{} }%
      \DeclareRobustCommand{\bibbtsep}{\inname{} }%
      \DeclareRobustCommand{\bibapyldelim}{\unskip\unskip\space}%
      \DeclareRobustCommand{\bibapyrdelim}{}%
      \DeclareRobustCommand{\bibatsep}{.}%
      \DeclareRobustCommand{\dateldelim}{\unskip.}%
      \DeclareRobustCommand{\daterdelim}{}%
    }%
    \AddTo\bibsenglish{%
        \def\incollinname{in}%
        \def\inname{in}%
        \def\editorname{\unskip,\space{}ed.}%
        \def\editorsname{\unskip,\space{}eds.}%
        \def\edbyname{ed.}%
        \def\Edbyname{Ed.}%
        \def\volumename{vol.}%
        \def\Volumename{Vol.}%
        \def\firstedname{1st}%
        \def\secondedname{2nd}%
        \def\thirdedname{3rd}%
        \def\fourthedname{4th}%
        \def\fifthedname{5th}%
        \def\thedname{th}%
        \def\editionname{ed}% dot removed, suggested by Robert Schlicht
   }%
   \fi\fi
  }%
  \addto\jbonlyforbib{\renewcommand*{\bibansep}{. }}% make sure that a space appear
  \ifjb@kv@recognized\else\jb@kv@warning{#1}{chicago}\fi
}%
\define@key{jb}{human}[true]{\global\jbhumtrue}
\define@key{jb}{edby}[true]{\global\jb@edbytrue}
\define@key{jb}{endnote}[true]{%
  \DeclareRobustCommand{\jbnote}[2]{\unskip}%
  \DeclareRobustCommand{\jbendnote}[1]{\def\jb@endnote{\unskip\unskip\ifjb@dot\else,\fi\space##1}}%
}
\define@key{jb}{biblikecite}[true]{%
     \global\jb@biblikecitetrue
     \AtBeginDocument{% <== to make redefintions work
        \global\let\biblnfont\jbauthorfont
        \global\let\bibfnfont\jbauthorfnfont
        \global\let\bibelnfont\jbauthorfont
        \global\let\bibefnfont\jbauthorfnfont
        \global\let\bibbtfont\jbtitlefont
        \global\let\bibtfont\jbtitlefont
        \global\let\bibapifont\jbapifont
     }%
}
\define@key{jb}{opcit}[true]{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{true}}{%
    \jb@kv@recognizedtrue
    \jb@opcittrue
  }{}%
  \ifthenelse{\equal{\jb@val}{chapter}}{%
    \jb@kv@recognizedtrue
    \global\jb@opcittrue
    \@ifundefined{chapter}{%
     \ClassError{\jb@pkg@name}{%
      Sorry, `opcit=chapter' makes no sense for\MessageBreak
      classes without \string\chapter%
     }{Try `opcit=section' for an article class}}{}%
    \@addtoreset{opcit}{chapter}%
    \def\jb@reset@opcit@for{chapter}%
    \def\jb@reset@opcit@label@for{\thechapter}%
  }{%
      \ifthenelse{\equal{\jb@val}{section}}{%
        \jb@kv@recognizedtrue
        \global\jb@opcittrue
        \@ifundefined{chapter}{}{%
         \jb@package@warningNoLine{\jb@pkg@name}{%
          `opcit=section' was designed for use with\MessageBreak
          an article class, note that it's not well\MessageBreak
          tested for use with book or report classes}}%
        \@addtoreset{opcit}{section}%
        \def\jb@reset@opcit@for{section}%
        \def\jb@reset@opcit@label@for{\thesection}%
      }{}%
  }%
  \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{opcit}\fi
 }%
}%
\define@key{jb}{annote}[true]{%
    \renewcommand{\bibAnnote}[1]{%
        \ifjb@tabular
           \par%
           \begin{minipage}[t]{\bibleftcolumn}%
               \renewcommand*{\bibansep}{}%
               \bibleftcolumnadjust\mbox{}%
           \end{minipage}%
           \ifjb@numbered@bib\hspace{15mm}\else\hspace{10mm}\fi
           \begin{minipage}[t]{\bibrightcolumn}%
               \bibrightcolumnadjust%
               \jbannoteformat{##1}%
           \end{minipage}%
        \else
           \par\jbannoteformat{##1}%
        \fi
    }%
    \renewcommand{\bibAnnoteFile}[1]{%
        \ifjb@tabular
           \par%
           \begin{minipage}[t]{\bibleftcolumn}%
               \renewcommand*{\bibansep}{}%
               \bibleftcolumnadjust\mbox{}%
           \end{minipage}%
           \ifjb@numbered@bib\hspace{15mm}\else\hspace{10mm}\fi
           \begin{minipage}[t]{\bibrightcolumn}%
               \bibrightcolumnadjust%
               \begingroup
                  \let\input@path\jb@ann@input@path
                  \IfFileExists{##1}{\ProvidesFile{##1.tex}%
                    [Bibliography annote file]\jbannoteformat{\input{##1}}}{}%
               \endgroup
           \end{minipage}%
        \else
            \begingroup
               \let\input@path\jb@ann@input@path
               \IfFileExists{##1}{\ProvidesFile{##1.tex}%
                 [Bibliography annote file]\par\jbannoteformat{\input{##1}}}{}%
            \endgroup
        \fi
    }%
}
\define@key{jb}{citetoend}[true]{\jb@citetoendtrue}
\define@key{jb}{hypercite}{%
    \ifthenelse{\equal{#1}{true}}{\jb@allow@hyper@citetrue}{%
    \ifthenelse{\equal{#1}{false}}{\jb@allow@hyper@citefalse}{\relax}}}
\define@key{jb}{lookforgender}[true]{\global\jblookforgendertrue}
\define@key{jb}{dotafter}{%
 \@for\jb@val:=#1\do{%
  \jb@kv@recognizedfalse
  \ifthenelse{\equal{\jb@val}{bibentry}}{%
    \jb@kv@recognizedtrue
    \jb@dottrue
  }{%
      \ifthenelse{\equal{\jb@val}{endnote}}{%
        \jb@kv@recognizedtrue
        \def\@endanenote{\unskip.\par\endgroup}%
      }{}%
  }%
     \ifjb@kv@recognized\else\jb@kv@warning{\jb@val}{dotafter}\fi
  }
}%
\define@key{jb}{silent}{\jbsilent}%
\define@key{jb}{super}[true]{\jb@supertrue}%
\define@key{jb}{nosplit}[true]{\jb@nosplittrue}%
\newcommand*{\jb@config@file}{jurabib.cfg}%
\newcommand*{\jb@own@config@file}{}%
\define@key{jb}{config}[jurabib]{\renewcommand*{\jb@own@config@file}{#1.cfg}}%
\newcommand*{\jb@enotes@warning}{%
    \PackageWarning{\jb@pkg@name}{%
      I assume you know what you are doing!\MessageBreak
      You are using `\string\cite' or something similar inside\MessageBreak
      a footnote while using endnotes.sty. This will\MessageBreak
      produce ambiguous references and not the\MessageBreak
      expected results. If you are unsure what\MessageBreak
      to do, use \string\cite\space or \string\footcite\space\MessageBreak
      instead}%
}
\AtBeginDocument{%
  \setkeys{jb}{crossref=normal}%
  \ifjbhum
    \setkeys{jb}{authorformat=and}%
    \DeclareRobustCommand{\jbbtfont}{\textit}%
    \jb@typeout{^^JPackage jurabib Info: *** jurabib set up for humanities stuff ***^^J}%
  \fi
  \providecommand*{\SSS}{\S\kern-.8pt\S\relax}%
  \@ifclassloaded{jura}{\global\jb@juratrue\global\jb@alphanumtrue}{\relax}%
  \@ifpackageloaded{alphanum}{\global\jb@alphanumtrue}{\relax}%
  \@ifpackageloaded{ragged2e}{\global\jb@raggedtrue}{\relax}%
  \@ifpackageloaded{url}{\global\jb@urltrue}{\relax}%
  \@ifpackageloaded{index}{\let\jb@@call@index\jb@@call@type@index}{\let\jb@@call@index\jb@@call@normal@index}
  \@ifpackageloaded{babel}{\global\jb@babeltrue}{\relax}%
  \@ifpackageloaded{varioref}{\ifjb@ignore@varioref\global\jb@variofalse\else\global\jb@variotrue\fi}{\relax}%
  \@ifpackageloaded{hyperref}{%
    \ifHy@hyperfootnotes\else % tabularx loaded!
      \jb@typeout{^^JPackage jurabib Info: 'hyperref' + 'tabularx' loaded, adapting footnote macro}%
      \let\Orig@tabularx@footnotetext\@footnotetext
      \long\def\@footnotetext#1{%
           \Orig@tabularx@footnotetext{%
              \jb@fntrue
              #1%
              \setcounter{jb@cites@in@footnote}{0}%
           }%
      }%
    \fi
    \@ifpackageloaded{tex4ht}{}{% Hook for tex4ht added
       \global\jb@hypertrue
       \let\Orig@H@@footnotetext\H@@footnotetext
       \long\def\H@@footnotetext#1{%
         \Orig@H@@footnotetext{%
           \jb@fntrue
           #1%
           \setcounter{jb@cites@in@footnote}{0}%
         }%
       }%
    }{\relax}%
  }{\relax}%
  \ifjb@hyper
      \@ifundefined{J@LongToc}{}{%
        \let\J@SetCurrent\relax
        \def\toclevel@lvla{0}\def\toclevel@lvlb{1}
        \def\toclevel@lvlc{2}\def\toclevel@lvld{3}
        \def\toclevel@lvle{4}\def\toclevel@lvlf{5}
        \def\toclevel@lvlg{6}\def\toclevel@lvlh{7}
        \def\toclevel@lvli{8}\def\toclevel@lvlj{9}
        \def\toclevel@lvlj{10}\def\toclevel@lvll{11}
        \newcommand*{\theHlvla}{\J@Number}\newcommand*{\theHlvlb}{\J@Number}
        \newcommand*{\theHlvlc}{\J@Number}\newcommand*{\theHlvld}{\J@Number}
        \newcommand*{\theHlvle}{\J@Number}\newcommand*{\theHlvlf}{\J@Number}
        \newcommand*{\theHlvlg}{\J@Number}\newcommand*{\theHlvlh}{\J@Number}
        \newcommand*{\theHlvli}{\J@Number}\newcommand*{\theHlvlj}{\J@Number}
        \newcommand*{\theHlvlk}{\J@Number}\newcommand*{\theHlvll}{\J@Number}
        \renewcommand*{\J@LongToc}[2][]{%
         \@startsection{lvl\alph{tiefe}}{\number\value{tiefe}}{0pt}%
         {\ifnum\value{tiefe}=1 -4ex plus-1,5ex minus-0,ex\else%
         -2,7ex plus-0,8ex minus-0,2ex\fi}{\ifnum\value{tiefe}>7 %
         -1em plus-0,5em\relax\else 0,6ex plus0,3ex minus0,1ex\fi}%
         {\sectfont\csname lvl\alph{tiefe}style\endcsname}[#1]{#2}%
        }%
      }%
    \def\BR@@lbibitem[#1]#2#3\par{\BRorg@bibitem[#1]{#2}#3\par}%
  \else
      \let\jbsaved@footnotetext\@footnotetext
      \long\def\@footnotetext#1{%
         \begingroup
          \jb@fntrue
          \jbsaved@footnotetext{#1}%
          \setcounter{jb@cites@in@footnote}{0}%
         \endgroup
      }%
      \ifjb@endnotes\g@addto@macro\enoteformat{\setcounter{jb@cites@in@footnote}{0}}\fi
  \fi
  \@ifpackageloaded{backref}{\global\jb@backreftrue}{\relax}%
  \@ifpackageloaded{bibtopic}{\global\jb@all@titlestrue%
    \ifjb@author@year\else
        \jb@package@warningNoLine{\jb@pkg@name}{%
        All titles are cited, you're using `bibtopic'!\MessageBreak
        Make sure that the `shorttitle' fields are not\MessageBreak
        empty, otherwise I'll using the `title' fields for\MessageBreak
        replacement. See the package documentation for\MessageBreak
        further explanation}%
    \fi
  }{\relax}%
  \ifjb@babel
   \jb@typeout{^^JPackage jurabib Info: *** jurabib set up for babel ***^^J}%
   \ifthenelse{\equal{\bbl@main@language}{german}%
               \TE@or\equal{\bbl@main@language}{germanb}%
               \TE@or\equal{\bbl@main@language}{ngerman}%
               \TE@or\equal{\bbl@main@language}{austrian}%
               \TE@or\equal{\bbl@main@language}{naustrian}%
   }{\@bibsgerman\bibsgerman}{%
      \ifthenelse{\equal{\bbl@main@language}{french}%
                  \TE@or\equal{\bbl@main@language}{francaise}%
                  \TE@or\equal{\bbl@main@language}{canadien}%
                  \TE@or\equal{\bbl@main@language}{acadian}%
      }{\@bibsfrench\bibsfrench}{%
        \ifthenelse{\equal{\bbl@main@language}{english}%
                    \TE@or\equal{\bbl@main@language}{USenglish}%
                    \TE@or\equal{\bbl@main@language}{american}%
                    \TE@or\equal{\bbl@main@language}{UKenglish}%
                    \TE@or\equal{\bbl@main@language}{british}%
                    \TE@or\equal{\bbl@main@language}{canadian}%
        }{\@bibsenglish\bibsenglish}{%
          \ifthenelse{\equal{\bbl@main@language}{dutch}%
          }{\@bibsdutch\bibsdutch}{%
            \ifthenelse{\equal{\bbl@main@language}{spanish}%
            }{\@bibsspanish\bibsspanish}{%
              \ifthenelse{\equal{\bbl@main@language}{portuges}%
                          \TE@or\equal{\bbl@main@language}{portuguese}%
                          \TE@or\equal{\bbl@main@language}{brazilian}%
                          \TE@or\equal{\bbl@main@language}{brazil}%
              }{\@bibsportuguese\bibsportuguese}{%
                \ifthenelse{\equal{\bbl@main@language}{italian}%
                }{\@bibsitalian\bibsitalian}{%
                  \ifthenelse{\equal{\bbl@main@language}{norsk}%
                              \TE@or\equal{\bbl@main@language}{nynorks}%
                  }{\@bibsnorsk\bibsnorsk}{%
                    \ifthenelse{\equal{\bbl@main@language}{finnish}%
                    }{\@bibsfinnish\bibsfinnish}{%
                      \ifthenelse{\equal{\bbl@main@language}{danish}%
                      }{\@bibsdanish\bibsdanish}{%
              \jb@package@warningNoLine{\jb@pkg@name}{%
                The language you declared as babel main language\MessageBreak
                is not yet supported by jurabib, please contact \MessageBreak
                the maintainer! We're using english as the default now.}%
              \@bibsenglish\bibsenglish%
            }}}}}}}}}}%
  \else
    \@ifpackageloaded{german}{\@bibsgerman\bibsgerman\renewcommand{\bbl@main@language}{german}}{%
     \@ifpackageloaded{ngerman}{\@bibsgerman\bibsgerman\renewcommand{\bbl@main@language}{german}}{
      \@ifpackageloaded{french}{\@bibsfrench\bibsfrench\renewcommand{\bbl@main@language}{french}}{%
       \@ifpackageloaded{frenchle}{\@bibsfrench\bibsfrench\renewcommand{\bbl@main@language}{french}}{%
          \@bibsenglish\bibsenglish}}}}%
  \fi
  \@ifundefined{chapter}{%
      \let\jb@orig@section\section % chapterbib.sty + numberedbib
      \renewcommand*{\section}{\setcounter{jbbibcnta}{0}\jb@orig@section}%
  }{%
      \let\jb@orig@chapter\chapter % chapterbib.sty + numberedbib
       \renewcommand*{\chapter}{\setcounter{jbbibcnta}{0}\jb@orig@chapter}%
  }%
  \@ifundefined{@xendnotenext}{\relax}{%
    \global\jb@endnotestrue
    \let\jb@orig@citex\@citex
    \let\orig@emulate@nat@cite\jb@emulate@nat@cite
    \def\@citex[#1][#2]#3{%
        \ifjbcross % no extra endnote for crossref's
            \jb@orig@citex[#1][#2]{#3}%
        \else
          \ifjbweareinbib % no extra endnote for howcited's
            \jb@orig@citex[#1][#2]{#3}%
          \else
              \ifjb@fn
                    \jb@enotes@warning\jb@orig@citex[#1][#2]{#3}%
              \else
                  \ifthenelse{\boolean{jb@foot}\or\boolean{jb@citetoend}\or\boolean{jb@super}}{%
                    \expandafter\endnote\expandafter{\jb@enote@hook\jb@orig@citex[#1][#2]{#3}}%
                  }{\jb@enote@hook\jb@orig@citex[#1][#2]{#3}}%
              \fi
          \fi
        \fi
    }%
    \def\jb@emulate@nat@cite[#1][#2]#3{%
        \ifjbcross % no extra endnote for crossref's
            \orig@emulate@nat@cite[#1][#2]{#3}%
        \else
          \ifjbweareinbib % no extra endnote for howcited's
            \orig@emulate@nat@cite[#1][#2]{#3}%
          \else
              \ifjb@fn
                    \jb@enotes@warning\orig@emulate@nat@cite[#1][#2]{#3}%
              \else
                  \ifthenelse{\boolean{jb@foot}\or\boolean{jb@citetoend}\or\boolean{jb@super}}{%
                      \expandafter\endnote\expandafter{\jb@enote@hook\orig@emulate@nat@cite[#1][#2]{#3}}%
                  }{\jb@enote@hook\orig@emulate@nat@cite[#1][#2]{#3}}%
              \fi
          \fi
        \fi
    }%
  }%
  \@ifpackageloaded{index}{\relax}{%
    \ifjb@index
     \@ifundefined{@indexfile}{%
       \jb@package@warningNoLine{\jb@pkg@name}{%
         The `makeidx' package is not loaded,\MessageBreak
          `authorformat=indexed' will not work}%
     }{}%
    \fi
  }%
}%
\AtEndOfPackage{%
  \ifjb@ragged
    \renewcommand*{\bibleftcolumnadjust}{\RaggedRight}%
    \renewcommand*{\bibrightcolumnadjust}{\RaggedRight}%
  \fi
}%
\@ifundefined{bib@heading}{%
  \@ifundefined{chapter}{%
    \newcommand*{\bib@heading}%
      {\section*{\refname\@mkboth{\refname}{\refname}}}%
  }{%
    \newcommand*{\bib@heading}%
      {\chapter*{\bibname\@mkboth{\bibname}{\bibname}}}%
  }%
}{%
   \relax
}%
\@ifundefined{bibsection}{}{\let\bib@heading\bibsection}%
\newcommand*{\jbmakeinbiblist}{}%
\newcommand*{\jbmakeinbib}{%
  \jbweareinbibtrue
  \jbonlyforbib%
  \let\jbPAGES\origPAGES
  \let\jbpages\origpages
  \let\jbPages\origPages
  \let\jbartPages\origartPages
  \jb@lookatfalse
  \let\jbatsep\@empty
  \jb@third@extra@spacefalse
  \jb@ibidemfalse
  \jb@ibidem@pagewisefalse
  \jb@ibidem@double@pagewisefalse
  \jb@ibidem@with@namefalse
  \jb@ibidem@with@short@namefalse
  \jb@ibidem@with@name@and@titlefalse
  \jb@no@lookat@for@bibtrue
  \ifjb@dynamic@crossrefs
          \renewcommand*{\bibcrossrefcite}{\citetitle}%
          \renewcommand*{\bibincollcrossrefcite}{\citetitle}%
          \renewcommand*{\bibcrossrefciteagain}{\citetitle}%
          \renewcommand*{\bibincollcrossrefciteagain}{\citetitle}%
  \fi
  \let\jb@last@ibidem@author\@empty
  \let\jb@ibidem@author\@empty
}%
\renewenvironment{thebibliography}[1]{%
  \bib@heading
  \jbmakeinbib%
  \gdef\jb@inside@author{}%
  \gdef\jb@inside@editor{}%
  \addtolength{\jb@biblaw@entry@width}{\textwidth}%
  \list{\relax}{%
     \ifjb@compressed@bib
        \setlength{\parsep}{0.2ex plus 0.1ex minus 0.1ex}%
        \setlength{\itemsep}{0.2ex plus 0.1ex minus 0.1ex}%
     \fi
     \jbmakeinbiblist% NEW 0.5e make \itemsep configurable with \addto
     \ifjb@bib@hang%
        \setlength{\itemindent}{-\jbbibhang}%
        \setlength{\leftmargin}{\jbbibhang}%
     \else
        \setlength{\itemindent}{0pt}%
        \setlength{\leftmargin}{0pt}%
     \fi
    }%
  \sloppy\clubpenalty4000\widowpenalty4000%
  \sfcode`\.=\@m%
 }%
 {\def\@noitemerr
   {\@latex@warning{Empty `thebibliography' environment}%
 }\endlist\jbweareinbibfalse%
}%
\newcommand*{\jb@make@howcited}{% @* except of ...
 \renewcommand*{\bibhowcited}{%
   \jbweareinhowcitedtrue
   \howcitedprefix%
   \jb@specialcite{\jb@key}%
   \howcitedsuffix\jbweareinhowcitedfalse}}%
\newcommand*{\jb@make@comment@howcited}{% ... @COMMENTED
   \renewcommand*{\bibcommenthowcited}{%
     \jbweareinhowcitedtrue
     \howcitedprefix%
     \jb@specialcite[Bearbeiter][]{\jb@key}%
     \howcitedsuffix\jbweareinhowcitedfalse}}%
\newcommand*{\jb@make@artperiod@howcited}{% ... @ARTICLE and @PERIODICAL
 \ifjb@allow@howcited@art@period
    \renewcommand*{\bibartperiodhowcited}{%
      \jbweareinhowcitedtrue
      \howcitedprefix%
      \jb@specialcite{\jb@key}%
      \howcitedsuffix\jbweareinhowcitedfalse}%
 \fi}%
\newcommand*{\jb@make@all@howcited@empty}{%
 \let\bibhowcited\@empty
 \let\bibcommenthowcited\@empty
 \ifjb@allow@howcited@art@period
   \let\bibartperiodhowcited\@empty
 \fi
}%
\newcommand*{\nocitebuthowcited}[1]{%
  \if@filesw\immediate\write\@newciteauxhandle{%
      \string\citation{#1}^^J%
      \string\jbrealcitation{cite}{#1}}
  \fi
}%
\newcommand*{\jbhowcitedcomparepart}{%
  \ifthenelse{\equal{\jb@@howcited}{}}{%
     \ifthenelse{\equal{\jb@@shorttitle}{\@empty}}{%
         \jb@make@all@howcited@empty
     }{%
         \ifthenelse{\equal{\jb@@shorttitle}{\jb@@title}}{%
            \jb@make@all@howcited@empty
         }{%
            \ifthenelse{\equal{\jb@@author}{empty}}{%
               \jb@make@all@howcited@empty
            }{%
               \ifthenelse{%
                   \equal{\@nameuse{TITLE@\jb@key}}{used}%
               }{%
                   \jb@suppress@dot@for@howcitedtrue
                   \jb@make@howcited%
                   \jb@make@comment@howcited%
                   \jb@make@artperiod@howcited%
               }{%
                   \jb@make@all@howcited@empty
               }%
            }%
         }%
     }%
  }{%
     \ifthenelse{\equal{\jb@@howcited}{1}}{%
          \ifthenelse{%
              \equal{\@nameuse{TITLE@\jb@key}}{used}%
          }{%
              \jb@suppress@dot@for@howcitedtrue
              \jb@make@howcited%
              \jb@make@comment@howcited%
              \jb@make@artperiod@howcited%
          }{%
              \jb@make@all@howcited@empty
          }%
     }{%
          \renewcommand*{\bibhowcited}{%
            \howcitedprefix \jb@@howcited\howcitedsuffix}%
          \renewcommand*{\bibcommenthowcited}{%
            \howcitedprefix \jb@@howcited\howcitedsuffix}%
          \ifjb@allow@howcited@art@period
            \renewcommand*{\bibartperiodhowcited}{%
              \howcitedprefix \jb@@howcited\howcitedsuffix}%
          \fi
     }%
  }%
}%
\newcommand*{\jbhowcitednormalpart}{%
  \ifthenelse{\equal{\jb@@howcited}{}}{% %
     \jb@make@all@howcited@empty
  }{%
     \ifthenelse{\equal{\jb@@howcited}{1}}{%
        \jb@suppress@dot@for@howcitedtrue
        \jb@make@howcited%
        \jb@make@comment@howcited%
        \jb@make@artperiod@howcited%
     }{%
        \renewcommand*{\bibhowcited}{%
          \howcitedprefix \jb@@howcited\howcitedsuffix}%
        \renewcommand*{\bibcommenthowcited}{%
          \howcitedprefix \jb@@howcited\howcitedsuffix}%
        \ifjb@allow@howcited@art@period
          \renewcommand*{\bibartperiodhowcited}{%
            \howcitedprefix \jb@@howcited\howcitedsuffix}%
        \fi
     }%
  }%
}
\newcommand*{\jbaddtomakehowcited}{}
\newcommand*{\jb@make@the@howcited}{%
  \ifthenelse{\boolean{jb@howcited@normal}}{%
      % NORMAL=TRUE
      \ifthenelse{\boolean{jb@howcited@compare}}{%
          % NORMAL=TRUE, COMPARE=TRUE
          \ifthenelse{\boolean{jb@howcited@multiple}}{%
              % NORMAL=TRUE, COMPARE=TRUE, MULTIPLE=TRUE
              \ifthenelse{\equal{\jb@@mult@switch}{1}}{% multiple part start
                 \jb@make@howcited
                 \jb@make@comment@howcited
                 \jb@make@artperiod@howcited   % multiple part end
              }{%
                  \jbhowcitednormalpart%
                  \jbhowcitedcomparepart%
              }%
          }{% NORMAL=TRUE, COMPARE=TRUE, multiple=false
              \jbhowcitednormalpart%
              \jbhowcitedcomparepart%
          }%
      }{%
          % NORMAL=TRUE, compare=false
          \ifthenelse{\boolean{jb@howcited@multiple}}{%
              % NORMAL=TRUE, compare=false, MULTIPLE=TRUE
              % howcited=normal AND howcited=multiple
              \ifthenelse{\equal{\jb@@mult@switch}{1}}{% multiple part start
                 \jb@make@howcited
                 \jb@make@comment@howcited
                 \jb@make@artperiod@howcited   % multiple part end
              }{%
                 \jbhowcitednormalpart%
              }%
          }{%   NORMAL=TRUE, compare=false, multiple=false
              \jbhowcitednormalpart%
          }%
      }%
  }{%
  %   normal=false
      \ifthenelse{\boolean{jb@howcited@compare}%
      }{% normal=false, COMPARE=TRUE
          \ifthenelse{\boolean{jb@howcited@multiple}}{%
             % normal=false, COMPARE=TRUE, MULTIPLE=TRUE
             \ifthenelse{\equal{\jb@@mult@switch}{1}}{% multiple part start
                \jb@make@howcited
                \jb@make@comment@howcited
                \jb@make@artperiod@howcited   % multiple part end
             }{%
                \jbhowcitedcomparepart%
             }%
          }{% normal=false, COMPARE=TRUE, multiple=false
              \jbhowcitedcomparepart%
          }%
      }{% normal=false, compare=false
          \ifthenelse{\boolean{jb@howcited@multiple}}{%
              % normal=false, compare=false, MULTIPLE=TRUE
              \jb@suppress@dot@for@howcitedtrue
              \ifthenelse{\equal{\jb@@mult@switch}{1}}{% multiple part start
                  \jb@make@howcited
                  \jb@make@comment@howcited
                  \jb@make@artperiod@howcited  % multiple part end
              }{%
                  \jb@make@all@howcited@empty
              }%
              \jb@make@comment@howcited
          }{% normal=false, compare=false, multiple=false, all=true
            \ifthenelse{\boolean{jb@howcited@all}}{%
               \jb@suppress@dot@for@howcitedtrue
               \jb@make@howcited
               \jb@make@comment@howcited
               \jb@allow@howcited@art@periodtrue
               \jb@make@artperiod@howcited
            }{%
                % normal=false, compare=false, multiple=false, all=false
                % no howcited option
                \relax
            }%
          }%
      }%
  }%
  \jbaddtomakehowcited%
}%
%% we have to switch on `howcited' for articles and periodicals
\newcommand*{\jb@detect@used@cite@commands}{%
  \ifthenelse{\equal{\@nameuse{b@\jb@key @C}}{cite}}{%
     \let\jb@specialcite\cite}{\relax}%
  \ifthenelse{\equal{\@nameuse{b@\jb@key @C}}{citetitle}}{%
     \let\jb@specialcite\citetitle}{\relax}%
  \ifthenelse{\equal{\@nameuse{b@\jb@key @C}}{citenotitle}}{%
     \let\jb@specialcite\jbcitenotitle}{\relax}%
}%
\newcommand*{\jb@last@label}{}
\newcommand*{\jb@last@mult@author}{}
\AtEndDocument{\let\jb@chk@multiple\@gobbletwo}
\newcommand*{\jb@chk@multiple}[2]{%
   \ifthenelse{\equal{#1}{\jb@last@mult@author}}{%
       \global\@namedef{jb@fm@\jb@last@label}{}%
       \global\@namedef{jb@fm@#2}{}%
   }{%
       \relax
   }%
   \def\jb@last@mult@author{#1}%
   \def\jb@last@label{#2}%
}%
\newcommand*\jb@chk@bibetal[2]{%
    \begingroup
    \protected@edef\x{%
        \endgroup
        \def\noexpand\jb@@chk@bibetal####1\Bibetal####2\noexpand\end{%
            \noexpand\jb@@bibetal@argcheck{####1}{####2}{#2}%
        }%
    }\x
    \protected@edef\@tempa{#1}%
    \protected@edef\@tempb{\Bibetal}%
    \expandafter\expandafter\expandafter
    \jb@@chk@bibetal\expandafter\@tempa\@tempb\end
}
\newcommand*\jb@@bibetal@argcheck[3]{%
    \ifthenelse{\equal{#2}{}}{%
    }{%
        \if@filesw{%
            \let\protect\noexpand
            \immediate\write\@auxout{\string\jb@chk@multiple{#1#2}{#3}}%
        }%
        \fi
    }%
}
\newcommand*{\jb@@name}{}%
\newcommand*{\jb@last@fullname}{}%
\newcommand*{\jb@biblaw@item}{\hspace{0.5em}$\triangleright$\hspace{0.5em}}
\newlength{\jb@biblaw@entry@width}
\newlength{\jb@biblaw@item@width}
\settowidth{\jb@biblaw@item@width}{\jb@biblaw@item}
\setlength{\jb@biblaw@entry@width}{\jb@biblaw@item@width}
\setlength{\jb@biblaw@entry@width}{-\jb@biblaw@entry@width}
\newcolumntype{j}[1]{>{\bibaltformatalign\hspace{0pt}}p{#1}}
\newcommand*{\jb@item}{\item}%
\newcommand\jb@deactivate@babel{%
  %FIXME: \noextrasfrench or \bbl@deactivate don't work here?? just do it the low-level way:
  \let\do\@makeother\do\:\do\;\do\!\do\?\do\"\do\`\do\'\do\^%<---! solved in 0.51r (bug reported by Andreas Altenburger)
}
\newcommand*{\bibnumberformat}[1]{\biblnfont{#1.}}%
\newcommand\jb@@test@fullname{}
\newcommand\jb@@testlast@fullname{}
\newcommand\jb@@test@au@or@ed{}
\newcommand\jb@@testlast@au@or@ed{}
\newcommand*{\jb@index@authors}[2]{%
  \ifjb@do@authors@index
    \if@filesw\let\protect\noexpand\immediate\write\@auxout{\string\jb@index{aut}{#1}#2}\fi
  \fi
}
\newcommand*{\jb@index@editors}[2]{%
  \ifjb@do@editors@index
      \if@filesw\let\protect\noexpand\immediate\write\@auxout{\string\jb@index{ed}{#1}#2}\fi
  \fi
}
\newcommand*{\jb@index@organization}[2]{%
  \ifjb@do@organizations@index
    \if@filesw\let\protect\noexpand\immediate\write\@auxout{\string\jb@index{org}{#1}#2}\fi
  \fi
}
\newcommand*{\jbdoitem}{\begingroup\@makeother\\\@makeother\"\def~{\string~}\jb@doitem}%
\newcommand*{\jb@doitem}[3]{%
  \ifjb@debug\typeout{========================^^Jauthor:#1^^Jeditor:#2^^Jorganization:#3^^J}\fi
  \ifjb@index\protected@xdef\curr@key{\jb@key}%
     \@ifundefined{jb@key}{\relax}{%
     % the \@empty test is to remove empty entries in the .bbl between ';' (just for safety)
     \begingroup % make \@tempa assignment local
         \jb@for\@tempa:=#1\do{\ifx\@tempa\@empty\else\jb@index@authors{\jb@key}{\@tempa}\fi}%
         \jb@for\@tempa:=#2\do{\ifx\@tempa\@empty\else\jb@index@editors{\jb@key}{\@tempa}\fi}%
         \jb@for\@tempa:=#3\do{\ifx\@tempa\@empty\else\jb@index@organization{\jb@key}{\@tempa}\fi}%
     \endgroup
 }%
 \fi
 \endgroup % matches the \begingroup in \jbdoitem
 \jb@do@post@item
}
\newcommand*\jb@do@post@item{%
 \ifjb@no@bib\relax\else
  \ifthenelse{\equal{\@nameuse{NOBIB@\jb@key}}{suppress}}{}{%
   \jb@item\hyper@jbanchorstart{\jb@key}\hyper@jbanchorend
   \ifjb@howcited
     \@ifundefined{b@\jb@key @C}{%
         \renewcommand*{\bibhowcited}{%
                 \bibnotcited}%
         \renewcommand*{\bibcommenthowcited}{%
                 \bibnotcited}%
         \ifjb@allow@howcited@art@period
           \renewcommand*{\bibartperiodhowcited}{%
                    \bibnotcited}%
         \fi
     }{%
       \jb@detect@used@cite@commands
       \jb@handle@superscript@ed
       \jb@make@the@howcited
       \let\OpCit\@empty
     }%
   \fi
   \protected@edef\jb@tempcntc{\thebibnamereplace}%
   \stepcounter{bibnamereplace}%
   \label{jbib:\thebibnamereplace}%
   \@tempcnta=\jb@tempcntc
   \advance\@tempcnta\@ne
   \protected@edef\jb@tempcntd{\the\@tempcnta}%
   \ifthenelse{\boolean{jb@bibformat@ibidem}%
               \and\not\equal{\jb@@type}{archival}%
   }{%
       \ifthenelse{%
          \equal{\jb@simple@pageref@by@heiko{jbib:\jb@tempcntc}}{%
            \jb@simple@pageref@by@heiko{jbib:\thebibnamereplace}}%
       }{%
           \ifjb@debug SAME PAGE/\fi
           \ifthenelse{\equal{\jb@@test@fullname}{\jb@@testlast@fullname}}{%
                 \ifjb@debug SAME AUTHOR \fi
                 \ifthenelse{\equal{\jb@@fullname}{}}{}{%
                     \ifthenelse{%
                          \boolean{jbaltformat}%
                     }{%
                          \def\jb@@name{}%
                     }{%
                          \def\jb@@name{\bibauthormultiple}%
                     }%
                }%
           }{%
                 \ifjb@debug AUTHOR DIFFERS \fi
                 \ifthenelse{\equal{\jb@@fullname}{}}{%
                     \def\jb@@name{}%
                 }{%
                     \def\jb@@name{\jb@@fullname\bibansep}%
                 }%
           }%
       }{% DIFFERENT PAGES !!!!!
            \ifthenelse{%
                \boolean{@twoside}%
                \and
                \isodd{\jb@simple@pageref@by@heiko{jbib:\thebibnamereplace}}%
                \and
                \equal{%
                    \jb@simple@pageref@by@heiko{jbib:\jb@tempcntd}}{%
                    \jb@simple@pageref@by@heiko{jbib:\thebibnamereplace}}%
            }{%
                \ifjb@debug DIFF AND ODD/\fi
                \ifthenelse{%
                     \equal{\jb@@test@fullname}{\jb@@testlast@fullname}%
                }{%
                     \ifjb@debug SAME AUTHOR \fi
                     \ifthenelse{\equal{\jb@@fullname}{}}{}{%
                        \ifthenelse{%
                            \boolean{jbaltformat}%
                        }{%
                           \def\jb@@name{%
                               \jb@@fullname%
                               \space%
                               \bibfnfont{\bibcontinuedname}%
                               \bibansep%
                           }%
                        }{%
                            \def\jb@@name{\bibauthormultiple}%
                        }%
                     }%
                }{%
                    \ifjb@debug AUTHORS DIFFERS \fi
                    \ifthenelse{\equal{\jb@@fullname}{}}{%
                        \def\jb@@name{}%
                    }{%
                        \def\jb@@name{\jb@@fullname\bibansep}%
                    }%
                }%
            }{%
                \ifjb@debug DIFF AND EVEN/\fi
                \ifthenelse{%
                     \equal{\jb@@test@fullname}{\jb@@testlast@fullname}%
                }{%
                     \ifjb@debug SAME AUTHOR \fi
                     \ifthenelse{\equal{\jb@@fullname}{}}{}{%
                        \ifthenelse{%
                            \boolean{jbaltformat}%
                        }{%
                           \def\jb@@name{%
                               \jb@@fullname%
                               \space%
                               \bibfnfont{\bibcontinuedname}%
                               \bibansep%
                           }%
                        }{%
                            \def\jb@@name{\jb@@fullname\bibansep}%
                        }%
                     }%
                }{%
                    \ifjb@debug AUTHORS DIFFERS \fi
                    \ifthenelse{\equal{\jb@@fullname}{}}{%
                        \def\jb@@name{}%
                    }{%
                        \def\jb@@name{\jb@@fullname\bibansep}%
                    }%
                }%
            }%
        }%
   }{% bibformat=ibidem false
       \ifthenelse{\equal{\jb@@fullname}{}}{%
           \def\jb@@name{}%
       }{%
           \def\jb@@name{\jb@@fullname\bibansep}%
       }%
   }%
   \ifjb@babel
     \ifthenelse{\equal{\jb@@language}{\@empty}}{%
         \expandafter\jbselectlanguage\expandafter{\bbl@main@language}%
     }{%
         \language=\csname l@\jb@@language\endcsname\relax%
     }%
   \fi
   \ifjbaltformat\else
     \ifjb@numbered@bib
         \begin{minipage}[t]{\bibnumberwidth}%
           \stepcounter{jbbibcnta}\bibnumberformat{\thejbbibcnta}%
         \end{minipage}%
     \fi
   \fi
   \ifjb@tabular
            \begin{minipage}[t]{\bibleftcolumn}%
                \renewcommand*{\bibansep}{}%
                \bibleftcolumnadjust\bibleftcolumnstretch\mbox{}%
                \jb@@name%
            \end{minipage}
            \hspace{\bibcolumnsep}%
            \begin{minipage}[t]{\bibrightcolumn}%
                \bibrightcolumnadjust\bibleftcolumnstretch%
                \let\jblinebreak\@empty
                \jb@@fulltitle%
                \begingroup
                  \let\hyper@jblinkstart\@gobble
                  \let\hyper@jblinkend\relax
                  \jb@bibarg@howcited%
                \endgroup
                \ifjb@dot\unskip\unskip\unskip.\fi
                \jb@endnote%
                \ifjb@backref~\backref{\csname br@\jb@key\endcsname}\fi
            \end{minipage}%
            \bibtabularitemsep
   \else
       \ifjbaltformat
            \ifx\jb@@name\@empty\else\medskip\fi % add some vertical space between different authors
            \let\jblinebreak\@empty\setlength{\tabcolsep}{0pt}\mbox{}\noindent
            \begin{tabular}{p{\jb@biblaw@item@width}j{\jb@biblaw@entry@width}}
            \ifx\jb@@name\@empty\else\multicolumn{2}{p{\columnwidth}}{\jb@@name}\\\fi
            \jb@biblaw@item & \jb@@fulltitle%
                              \begingroup
                                 \let\hyper@jblinkstart\@gobble
                                 \let\hyper@jblinkend\relax
                                 \jb@bibarg@howcited%
                               \endgroup
                               \ifjb@dot\unskip\unskip\unskip.\fi
                               \jb@endnote%
                               \ifjb@backref
                                 ~\backref{\csname br@\jb@key\endcsname}%
                               \fi
            \end{tabular}
       \else
            \jb@@name\jb@@fulltitle%
            \begingroup
              \let\hyper@jblinkstart\@gobble
              \let\hyper@jblinkend\relax
              \jb@bibarg@howcited%
            \endgroup
            \ifthenelse{\equal{\jb@@type}{archival}}{}{\ifjb@dot\unskip\unskip\unskip.\fi}%
            \jb@endnote%
            \ifjb@backref~\backref{\csname br@\jb@key\endcsname}\fi
       \fi
   \fi
   \gdef\jb@endnote{}%
   \protected@edef\jb@@testlast@fullname{\jb@@test@fullname}%
   \protected@edef\jb@@testlast@au@or@ed{\jb@@test@au@or@ed}%
  }%
 \fi
 \if@filesw{\let\protect\noexpand\immediate\write\@newciteauxhandle{%
    \string\bibcite{\jb@key}{\jb@tempa}}}%
 \fi
 \ignorespaces
}%
\newcommand*{\jbbibargs}[5]{%
  \protected@edef\jb@tempa{\jb@tempb{#1}{#4}}%
  \protected@edef\jb@tempb{\expandafter\jb@thirdofseven\jb@tempa\@empty}%
  \protected@edef\jb@tempc{\expandafter\jb@fourthofseven\jb@tempa\@empty}%
  \def\jb@bibarg@howcited{#5}%
  \ifthenelse{\equal{#2}{jureco}}{\global\jb@bibformat@ibidemfalse\global\jbaltformatfalse}{\gdef\jb@@test@fullname{#2}}%
  \ifthenelse{\equal{#3}{}}{}{\gdef\jb@@test@au@or@ed{#3}}%
  \jb@chk@bibetal{\jb@@author}{\jb@key}%
  \let\jb@first@author\@undefined
  \let\jb@first@editor\@undefined
  \setcounter{ibidem@author}{0}%
  \setcounter{multiple@author}{0}%
}%
\def\@lbibitem{%
  \begingroup
    \jb@deactivate@babel
    \jb@lbibitem
}
\def\jb@lbibitem[#1]#2{%
    \gdef\jb@tempb{#1}%
    \gdef\jb@key{#2}%
    \ifjb@index@bib
       \jb@call@index{aut}{#2}%
       \jb@call@index{ed}{#2}%
       \jb@call@index{org}{#2}%
    \fi
  \endgroup
}%

\newcommand*{\nobibliography}[1]{%
  \ifjb@allow@nobib
   \global\jb@no@bibtrue
   \if@filesw\immediate\write\@newciteauxhandle{%
         \string\global\string\jb@allow@hyper@citefalse^^J%
         \string\global\string\jb@allow@hyper@cite@nobibfalse^^J%
         \string\global\string\jb@no@bibtrue
     }%
   \fi
  \begingroup
    \renewenvironment{thebibliography}[1]{%
     \usecounter{enumiv}%
     \renewcommand*{\item}[1][]{%
       \ifx\relax####1\relax\stepcounter\@listctr\fi
     }%
    }{\relax}%
    \bibliography{#1}%
  \endgroup
  \else
  \jb@package@warningNoLine{\jb@pkg@name}{%
    You are using the `\string\nobibliography' command\MessageBreak
    without using one of the `citefull' options.\MessageBreak
    Choose `citefull=first' or `citefull=all'.\MessageBreak
    I'm putting out the normal `\string\bibliography'%
  }%
  \bibliography{#1}%
 \fi
}%
\newcommand\jb@enote@hook{}
\DeclareRobustCommand\cite{%
  \@ifstar{%
    \begingroup
      \jb@deactivate@babel%
      \jb@starred@citetrue
      \@ifnextchar[{\jb@cite@no@title}{\jb@cite@no@title[]}%
  }{%
    \begingroup
      \jb@deactivate@babel%
      \@ifnextchar[{\jb@cite}{\jb@cite[]}%
  }%
}%
\newcommand*{\jb@cite}{}%
\def\jb@cite{%
  \@ifnextchar[{\jb@@cite}{\jb@@cite[]}%
}
\def\jb@@cite[#1]{%
  \@ifnextchar[{\jb@@@cite[#1]}{\jb@@@cite[][#1]}%
}
\def\jb@@@cite[#1][#2]#3{%
 \def\jb@enote@hook{%
     \ifjb@all@full
        \jb@change@fonts@for@fullcitetrue
        \jb@fullcite@againtrue
        \jb@citefalse
     \else
        \jb@citetrue
        \jb@fullcite@againfalse
     \fi
     \jb@cite@titlefalse
     \jb@cite@no@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \ifjb@super\jb@footnote@periodtrue\fi
 \jb@footfalse     % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\jb@cite@no@title}{}%
\def\jb@cite@no@title{%
  \@ifnextchar[{\jb@@cite@no@title}{\jb@@cite@no@title[]}%
}
\def\jb@@cite@no@title[#1]{%
  \@ifnextchar[{\jb@@@cite@no@title[#1]}{\jb@@@cite@no@title[][#1]}%
}
\def\jb@@@cite@no@title[#1][#2]#3{%
 \def\jb@enote@hook{%
     \ifjb@all@full
        \jb@change@fonts@for@fullcitetrue
        \jb@fullcite@againtrue
        \jb@cite@no@titlefalse
     \else
        \jb@cite@no@titletrue
        \jb@fullcite@againfalse
     \fi
     \jb@citefalse
     \jb@cite@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \ifjb@super\jb@footnote@periodtrue\fi
 \jb@footfalse % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\jbcitetitle}{%
 \begingroup
  \jb@deactivate@babel%
  \@ifnextchar[{\jb@cite@title}{\jb@cite@title[]}%
}
\newcommand*{\jb@cite@title}{}%
\def\jb@cite@title{%
  \@ifnextchar[{\jb@@cite@title}{\jb@@cite@title[]}%
}
\def\jb@@cite@title[#1]{%
  \@ifnextchar[{\jb@@@cite@title[#1]}{\jb@@@cite@title[][#1]}%
}
\def\jb@@@cite@title[#1][#2]#3{%
 \def\jb@enote@hook{%
     \ifjb@all@full
        \jb@change@fonts@for@fullcitetrue
        \jb@fullcite@againtrue
        \jb@cite@titlefalse
     \else
        \jb@cite@titletrue
        \jb@fullcite@againfalse
     \fi
     \jb@citefalse
     \jb@cite@no@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \ifjb@super\jb@footnote@periodtrue\fi
 \jb@footfalse % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\jbfullcite}{%
 \begingroup
  \jb@deactivate@babel%
  \@ifnextchar[{\jb@fullcite}{\jb@fullcite[]}%
}
\newcommand*{\jb@fullcite}{}%
\def\jb@fullcite{%
  \@ifnextchar[{\jb@@fullcite}{\jb@@fullcite[]}%
}
\def\jb@@fullcite[#1]{%
  \@ifnextchar[{\jb@@@fullcite[#1]}{\jb@@@fullcite[][#1]}%
}
\def\jb@@@fullcite[#1][#2]#3{%
 \def\jb@enote@hook{%
     \noibidem%
     \jb@change@fonts@for@fullcitetrue
     \jb@cite@no@titlefalse
     \jb@fullcite@againtrue
     \jb@citefalse
     \jb@cite@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \ifjb@super\jb@footnote@periodtrue\fi
 \jb@footfalse % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\jbfootcite}{%
 \begingroup
  \jb@deactivate@babel%
  \@ifstar{\jbfootcitenotitle}{%
  \@ifnextchar[{\jb@footcite}{\jb@footcite[]}}}%
\newcommand*{\jb@footcite}{}%
\def\jb@footcite{%
  \@ifnextchar[{\jb@@footcite}{\jb@@footcite[]}%
}
\def\jb@@footcite[#1]{%
  \@ifnextchar[{\jb@@@footcite[#1]}{\jb@@@footcite[][#1]}%
}
\def\jb@@@footcite[#1][#2]#3{%
 \ifjb@fn\ClassError{\jb@pkg@name}{%
  You are using `\string\footcite' inside a footnote}{%
  Sorry, that makes no sense.}\fi
 \def\jb@enote@hook{\unskip%
     \ifjb@all@full
      \jb@change@fonts@for@fullcitetrue
      \jb@fullcite@againtrue
      \jb@citefalse
     \else
      \jb@citetrue
      \jb@fullcite@againfalse
     \fi
     \jb@cite@titlefalse
     \jb@cite@no@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \jb@footnote@periodtrue
 \jb@foottrue % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\jbfootcitetitle}{%
 \begingroup
  \jb@deactivate@babel%
  \@ifnextchar[{\jb@footcitetitle}{\jb@footcitetitle[]}%
}%
\newcommand*{\jb@footcitetitle}{}%
\def\jb@footcitetitle{%
  \@ifnextchar[{\jb@@footcitetitle}{\jb@@footcitetitle[]}%
}
\def\jb@@footcitetitle[#1]{%
  \@ifnextchar[{\jb@@@footcitetitle[#1]}{\jb@@@footcitetitle[][#1]}%
}
\def\jb@@@footcitetitle[#1][#2]#3{%
 \ifjb@fn\ClassError{\jb@pkg@name}{%
  You are using `\string\footcitetitle' inside a footnote}{%
  Sorry, that makes no sense.}\fi
 \def\jb@enote@hook{\unskip% <== added to skip spaces before endnotes
     \ifjb@all@full
       \jb@change@fonts@for@fullcitetrue
       \jb@fullcite@againtrue
       \jb@cite@titlefalse
     \else
       \jb@cite@titletrue
       \jb@fullcite@againfalse
     \fi
     \jb@citefalse
     \jb@cite@no@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \jb@footnote@periodtrue
 \jb@foottrue % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\jbfootcitenotitle}{%
 \begingroup
  \jb@deactivate@babel%
  \jb@starred@citetrue
  \@ifnextchar[{\jb@footcitenotitle}{\jb@footcitenotitle[]}}%
\newcommand*{\jb@footcitenotitle}{}%
\def\jb@footcitenotitle{%
  \@ifnextchar[{\jb@@footcitenotitle}{\jb@@footcitenotitle[]}%
}
\def\jb@@footcitenotitle[#1]{%
  \@ifnextchar[{\jb@@@footcitenotitle[#1]}{\jb@@@footcitenotitle[][#1]}%
}
\def\jb@@@footcitenotitle[#1][#2]#3{%
 \ifjb@fn\ClassError{\jb@pkg@name}{%
  You are using `\string\footcite*' inside a footnote}{%
  Sorry, that makes no sense.}\fi
 \def\jb@enote@hook{\unskip%
     \ifjb@all@full
      \jb@change@fonts@for@fullcitetrue
      \jb@fullcite@againtrue
      \jb@cite@no@titlefalse
     \else
      \jb@cite@no@titletrue
      \jb@fullcite@againfalse
     \fi
     \jb@citefalse
     \jb@cite@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \jb@footnote@periodtrue
 \jb@foottrue % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\jbfootfullcite}{%
 \begingroup
  \jb@deactivate@babel%
  \@ifnextchar[{\jb@footfullcite}{\jb@footfullcite[]}%
}%
\newcommand*{\jb@footfullcite}{}%
\def\jb@footfullcite{%
  \@ifnextchar[{\jb@@footfullcite}{\jb@@footfullcite[]}%
}
\def\jb@@footfullcite[#1]{%
  \@ifnextchar[{\jb@@@footfullcite[#1]}{\jb@@@footfullcite[][#1]}%
}
\def\jb@@@footfullcite[#1][#2]#3{%
 \ifjb@fn\ClassError{\jb@pkg@name}{%
  You are using `\string\footfullcite' inside a footnote}{%
  Sorry, that makes no sense.}\fi
 \def\jb@enote@hook{\unskip%
     \noibidem%
     \jb@change@fonts@for@fullcitetrue
     \jb@cite@no@titlefalse
     \jb@fullcite@againtrue
     \jb@citefalse
     \jb@cite@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \jb@footnote@periodtrue
 \jb@foottrue % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\citetitleonly}{%
 \begingroup
  \jb@deactivate@babel%
  \@ifnextchar[%
   {\jb@cite@titlewithoutauthor}{\jb@cite@titlewithoutauthor[]}%
}
\newcommand*{\jb@cite@titlewithoutauthor}{}%
\def\jb@cite@titlewithoutauthor{%
  \@ifnextchar[{\jb@@cite@titlewithoutauthor}{\jb@@cite@titlewithoutauthor[]}%
}
\def\jb@@cite@titlewithoutauthor[#1]{%
  \@ifnextchar[{\jb@@@cite@titlewithoutauthor[#1]}{\jb@@@cite@titlewithoutauthor[][#1]}%
}
\def\jb@@@cite@titlewithoutauthor[#1][#2]#3{%
 \def\jb@enote@hook{%
     \ifjb@all@full
        \jb@change@fonts@for@fullcitetrue
        \jb@fullcite@againtrue
        \jb@cite@titlefalse
     \else
        \jb@cite@titletrue
        \jb@noauthorforcitetitletrue
        \jb@fullcite@againfalse
     \fi
     \jb@citefalse
     \jb@cite@no@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \ifjb@super\jb@footnote@periodtrue\fi
 \jb@footfalse % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\footcitetitleonly}{%
 \begingroup
  \jb@deactivate@babel%
  \@ifnextchar[%
   {\jb@foot@cite@titlewithoutauthor}{\jb@foot@cite@titlewithoutauthor[]}%
}
\newcommand*{\jb@foot@cite@titlewithoutauthor}{}%
\def\jb@foot@cite@titlewithoutauthor{%
  \@ifnextchar[{\jb@@foot@cite@titlewithoutauthor}{\jb@@foot@cite@titlewithoutauthor[]}%
}
\def\jb@@foot@cite@titlewithoutauthor[#1]{%
  \@ifnextchar[{\jb@@@foot@cite@titlewithoutauthor[#1]}{\jb@@@foot@cite@titlewithoutauthor[][#1]}%
}
\def\jb@@@foot@cite@titlewithoutauthor[#1][#2]#3{%
 \def\jb@enote@hook{%
     \ifjb@all@full
        \jb@change@fonts@for@fullcitetrue
        \jb@fullcite@againtrue
        \jb@cite@titlefalse
     \else
        \jb@cite@titletrue
        \jb@noauthorforcitetitletrue
        \jb@fullcite@againfalse
     \fi
     \jb@citefalse
     \jb@cite@no@titlefalse
     \jb@footfalse % works for endnotes too
     \jbweareinendnotestrue
 }%
 \jb@enote@hook
 \jb@footnote@periodtrue
 \jb@foottrue % works only for non-endnotes
 \jbweareinendnotesfalse
 \@citex[#1][#2]{#3}%
 \endgroup
}
\newcommand*{\citefield}[3][]{%
  \renewcommand*{\@cite}[2]{##1##2}%
  \let\@citea\@empty\@cite{\@for\@citeb:=#3\do{%
  \@citea\def\@citea{;\penalty\@m\ }%
  \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
  \if@filesw\immediate\write\@newciteauxhandle{\jb@makehowcited%
  \string\citation{\@citeb}}\fi
  \@ifundefined{b@\@citeb\@extra@b@citeb}{%
  \mbox{\reset@font{\bfseries ?}, #1}\G@refundefinedtrue\@latex@warning%
  {Citation `\@citeb' on page \thepage \space undefined}}{%
  \begingroup
   \def\jb@@newauthorcite{#3}%
   \ifjb@allow@hyper@cite\hyper@jblinkstart{\@citeb}\fi
   \jb@extract
   \ifjb@babel
     \ifthenelse{\equal{\jb@@language}{\bbl@main@language}}{}{%
       \ifthenelse{\equal{\jb@@language}{\@empty}}{%
          \expandafter\jbselectlanguage%
          \expandafter{\bbl@main@language}%
       }{%
          \language=\csname l@\jb@@language\endcsname\relax%
       }%
     }%
   \fi
   \ifthenelse{\equal{#2}{}}{???}{%
       \ifthenelse{\equal{#2}{title}}{%
           \jbfulltitlefont{\jb@@title}%
       }{%
            \ifthenelse{\equal{#2}{juratitle}
                        \or\equal{#2}{shorttitle}}{%
                \jbshorttitlefont{\jb@@shorttitle}%
            }{%
                 \ifthenelse{\equal{#2}{year}}{%
                    \ifx\jb@@year\@empty\else
                     \textup{\jbcitationyearformat{\jb@@year}}\fi
                 }{%
                       \ifthenelse{\equal{#2}{author}}{%
                           \let\biblnfont\jbauthorfont
                           \let\bibfnfont\jbauthorfnfont
                           \let\bibelnfont\jbauthorfont
                           \let\bibefnfont\jbauthorfnfont
                           \ifjbcross
                                \jb@checked@author%
                             \else
                                \jbauthorfont{\jb@@fullname}%
                           \fi
                       }{%
                             \ifthenelse{\equal{#2}{juraauthor}\or\equal{#2}{shortauthor}}{%
                                 \ifthenelse{\equal{\jb@@mult@switch}{1}\or\equal{\jb@@title@switch}{1}}{%
                                     \jbauthorfont{\jb@@author}%
                                     \ifjbcross\jb@checked@title\fi%
                                 }{%
                                     \jbauthorfont{\jb@@author}%
                                 }%
                             }{%
                                  \ifthenelse{\equal{#2}{apy}}{%
                                      \apyformat{\jb@@apy}%
                                  }{%
                                      \ifthenelse{\equal{#2}{url}}{%
                                          \jburluse{#3}%
                                      }{%
                                          #2%
                                      }%
                                  }%
                             }%
                       }%
                 }%
            }%
       }%
   }%
   \ifjb@allow@hyper@cite\hyper@jblinkend\fi
  \endgroup
  \ifthenelse{\equal{#1}{\@empty}}{\relax}{\ifjb@comma@before@rest,\fi\space #1}%
  }}}{}}%
\newcommand{\jb@nat@cite@left@sep}{}%
\newcommand{\jb@nat@cite@right@sep}{}%
\newcommand{\jb@nat@citep@left@sep}{}%
\newcommand{\jb@nat@citep@right@sep}{}%
\newcommand*{\citep}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@citep}{\jb@citep[]}}%
\def\jb@citep[#1]{\@ifnextchar[{\jb@@citep[#1]}{\jb@@citep[][#1]}}%
\def\jb@@citep[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{,\space\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{(}\renewcommand{\jb@nat@citep@right@sep}{)}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@footfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
}%
\newcommand*{\citet}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@citet}{\jb@citet[]}}%
\def\jb@citet[#1]{\@ifnextchar[{\jb@@citet[#1]}{\jb@@citet[][#1]}}%
\def\jb@@citet[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{\space(\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{)}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@footfalse
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\citealt}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@citealt}{\jb@citealt[]}}%
\def\jb@citealt[#1]{\@ifnextchar[{\jb@@citealt[#1]}{\jb@@citealt[][#1]}}%
\def\jb@@citealt[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{\space\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@footfalse
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\citealp}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@citealp}{\jb@citealp[]}}%
\def\jb@citealp[#1]{\@ifnextchar[{\jb@@citealp[#1]}{\jb@@citealp[][#1]}}%
\def\jb@@citealp[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{,\space\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@footfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\citeauthor}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@citeauthor}{\jb@citeauthor[]}}%
\def\jb@citeauthor[#1]{\@ifnextchar[{\jb@@citeauthor[#1]}{\jb@@citeauthor[][#1]}}%
\def\jb@@citeauthor[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@footfalse
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
}%
\newcommand*{\citeyear}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@citeyear}{\jb@citeyear[]}}%
\def\jb@citeyear[#1]{\@ifnextchar[{\jb@@citeyear[#1]}{\jb@@citeyear[][#1]}}%
\def\jb@@citeyear[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\ifthenelse{\equal{\jb@@year}{}}{?}{\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@footfalse
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\citeyearpar}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@citeyearpar}{\jb@citeyearpar[]}}%
\def\jb@citeyearpar[#1]{\@ifnextchar[{\jb@@citeyearpar[#1]}{\jb@@citeyearpar[][#1]}}%
\def\jb@@citeyearpar[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\ifthenelse{\equal{\jb@@year}{}}{?}{(\jb@@year)}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@footfalse
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\footcitep}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@footcitep}{\jb@footcitep[]}}%
\def\jb@footcitep[#1]{\@ifnextchar[{\jb@@footcitep[#1]}{\jb@@footcitep[][#1]}}%
\def\jb@@footcitep[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{,\space\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{(}\renewcommand{\jb@nat@citep@right@sep}{)}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@foottrue
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\footcitet}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@footcitet}{\jb@footcitet[]}}%
\def\jb@footcitet[#1]{\@ifnextchar[{\jb@@footcitet[#1]}{\jb@@footcitet[][#1]}}%
\def\jb@@footcitet[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{\space(\jb@@year)}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@foottrue
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\footcitealt}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@footcitealt}{\jb@footcitealt[]}}%
\def\jb@footcitealt[#1]{\@ifnextchar[{\jb@@footcitealt[#1]}{\jb@@footcitealt[][#1]}}%
\def\jb@@footcitealt[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{\space\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@foottrue
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\footcitealp}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@footcitealp}{\jb@footcitealp[]}}%
\def\jb@footcitealp[#1]{\@ifnextchar[{\jb@@footcitealp[#1]}{\jb@@footcitealp[][#1]}}%
\def\jb@@footcitealp[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}\ifthenelse{\equal{\jb@@year}{}}{}{,\space\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse % works for endnotes too
    }%
    \jb@enote@hook
    \jb@foottrue
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
    \jb@nat@use@year@commandtrue
}%
\newcommand*{\footciteauthor}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@footciteauthor}{\jb@footciteauthor[]}}%
\def\jb@footciteauthor[#1]{\@ifnextchar[{\jb@@footciteauthor[#1]}{\jb@@footciteauthor[][#1]}}%
\def\jb@@footciteauthor[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\jbauthorfont{\jb@@author}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \renewcommand{\jb@nat@citep@left@sep}{}\renewcommand{\jb@nat@citep@right@sep}{}%
        \jb@footfalse
        \jbweareinendnotestrue
    }%
    \jb@enote@hook
    \jb@foottrue
    \jbweareinendnotesfalse
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
}%
\newcommand*{\jb@emulate@nat@cite}{\@ifnextchar[{\jb@@emulate@nat@cite}{\jb@@emulate@nat@cite[]}}%
\def\jb@@emulate@nat@cite[#1]{\@ifnextchar[{\jb@@@emulate@nat@cite[#1]}{\jb@@@emulate@nat@cite[][#1]}}%
\def\jb@@@emulate@nat@cite[#1][#2]#3{%
  \ifthenelse{\boolean{jb@foot}\or\(\boolean{jb@super}\and\not\boolean{jb@fn}\and\not\boolean{jbweareinbib}\and\not\boolean{jbweareinendnotes}\)}{%
    \renewcommand*{\@cite}[2]{\unskip\footnote{##1##2.}}%
  }{%
    \renewcommand*{\@cite}[2]{##1##2}%
  }%
  \let\@citea\@empty
  \jb@nat@citep@left@sep%
  \@cite{%
    \@for\@citeb:=#3\do{%
        \@citea\def\@citea{;\penalty\@m\ }%
        \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
        \if@filesw
            \immediate\write\@newciteauxhandle{%
                \jb@makehowcited\string\citation{\@citeb}}%
        \fi
        \@ifundefined{b@\@citeb\@extra@b@citeb}{%
          \mbox{\reset@font{\bfseries ?}, #1}%
          \G@refundefinedtrue
          \@latex@warning{Citation `\@citeb' on page \thepage \space undefined}%
        }{%
          \begingroup
           \jb@call@index{aut}{\@citeb}%
           \jb@call@index{ed}{\@citeb}%
           \jb@call@index{org}{\@citeb}%
           \ifjb@allow@hyper@cite\hyper@jblinkstart{\@citeb}\fi
           \jb@extract%
           \jb@nat@cite@left@sep%
           \ifjb@see
                 \ifthenelse{\equal{#1}{\@empty}}{}{#1\space}%
           \else
              \ifthenelse{\equal{#1}{\@empty}}{}{#1\space}%
           \fi
           \jb@nat@commands%
             \ifthenelse{\equal{#2}{\@empty}}{}{,\space\jbprformat{#2}}%
           \jb@nat@cite@right@sep%
           \ifjb@allow@hyper@cite\hyper@jblinkend\fi
          \endgroup
        }%
    }%
  }{}%
  \jb@nat@citep@right@sep%
}%
\newcommand*{\jb@makehowcited}{%
\ifjb@howcited
 \ifjbcross\else
  \ifjb@allow@hyper@cite@nobib
   \ifjb@cite\string\jbrealcitation{cite}{\@citeb}^^J\fi
   \ifjb@cite@title\string\jbrealcitation{citetitle}{\@citeb}^^J\fi
   \ifjb@cite@no@title\string\jbrealcitation{citenotitle}{\@citeb}^^J\fi
  \fi
 \fi
\fi
}%
\newcommand*{\jb@changefontsforfullcite}{%
  \ifjb@reverse@names@in@citation
      \let\bibnf\bibrnf
      \let\bibenf\bibrenf
  \fi
  \let\bibansep\jbhowsepbeforetitle
  \let\bibbtasep\jbbtasep
  \let\bibbfsasep\jbbfsasep
  \let\bibbstasep\jbbstasep
  \let\bibbtesep\jbbtesep
  \let\bibbfsesep\jbbfsesep
  \let\bibbstesep\jbbstesep
  \let\jblinebreak\@empty
  \ifjb@change@fonts@for@fullcite
  \let\biblnfont\jbauthorfont%
  \let\bibfnfont\jbauthorfnfont%
  \let\bibelnfont\jbauthorfont%
  \let\bibefnfont\jbauthorfnfont%
  \let\bibtfont\jbtitlefont%
  \let\bibbtfont\jbbtitlefont%
  \let\bibapifont\jbapifont%
    \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{%
    \ifjb@dynamic@author@fonts
      \let\jbauthorfont\jbactualauthorfont
      \let\biblnfont\jbactualauthorfont
      \let\bibfnfont\jbactualauthorfnfont
    \fi
    }{%
    \ifjb@dynamic@author@fonts
      \ifjb@see
      \let\biblnfont\jbactualauthorfont
      \else
      \let\jbannotatorfont\jbactualauthorfont
      \let\jbauthorfont\jbauthorfontifannotator
      \fi
    \fi
    }%
  \fi
}%
\newcommand*{\jb@test@last@author@ibidem}{%
   \ifjb@see
     \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{}{%
       \jb@formatted@co@author%
       \let\IbidemName\IbidemMidName
     }%
   \fi
   \ifthenelse{\equal{\jb@@newannotatorcite}{\jb@@lastannotatorcite}\or\boolean{jb@see}}{%
     \let\jb@@newannotatorcite\@empty
     \@ifundefined{ibidem}{\@namedef{ibidem}{}}{\relax}%
     \ifjb@debug
       \textcolor[named]{WildStrawberry}{%
       \ifjb@debug@br[\fi\ifthenelse{\thejb@cites@in@footnote<2}{\IbidemName}{\IbidemMidName}\ifjb@debug@br]\fi}%
     \else
       \ifthenelse{\thejb@cites@in@footnote<2}{\IbidemName}{\IbidemMidName}%
       \jb@switchidemofflocallytrue
       \jbnoformatafterstartpagefalse
     \fi
     \ifthenelse{\equal{\jb@@newpagecite}{\jb@@lastpagecite}}{\let\jb@@newpagecite\@empty}{}%
     \let\jb@extraspace\@empty
     \let\jbapifont\@empty% <== remove single quotes after ibid.
     \let\jbbtfont\@empty % <== remove single quotes after ibid.
     \ifjb@ibidem@with@name
       \let\jb@@fullname\@empty
       \let\IbidemName\@empty
       \let\jbatsep\@empty
       \jb@second@extra@spacefalse
     \fi
     \let\jb@use@fullcite\@empty
     \let\jb@@author\@empty
     \let\jb@aftertitleedition\@empty
     \let\jb@checked@edition\@empty
     \let\jbhowsepbeforetitle\@empty
     \let\jb@@title\@empty
     \let\jb@@shorttitle\relax
     \let\jb@formatted@year\@empty
     \let\OpCit\relax
     \ifjbusehowcitedforcite\let\jb@@howcited\@empty\fi
     \ifjb@see\else\let\jb@@newannotatorcite\@empty\fi
     \ifthenelse{%
                 \equal{\jb@@newpagecite}{\jb@@lastpagecite}%
                 \or
                 \equal{\jb@@newpagecite}{}%
     }{%
                 \global\jb@footnote@periodfalse
     }{}%
     %\let\jb@makeidem\@empty
   }{\relax}%
}%
\newcommand*{\jb@idem@gender@checked}{%
  \ifjb@noauthorforcitetitle\else
   \ifjb@switchidemofflocally\else
    \ifthenelse{%
        \not\equal{\jb@@gender}{}%
        \and
        \boolean{jblookforgender}%
    }{%
        \ifthenelse{\equal{\jb@@gender}{sm}}{%
           \@ifundefined{jb@morethanonecite}{\idemSmname}{\idemsmname}%
        }{%
            \ifthenelse{\equal{\jb@@gender}{pm}}{%
                \@ifundefined{jb@morethanonecite}{\idemPmname}{\idempmname}%
            }{%
                \ifthenelse{\equal{\jb@@gender}{sf}}{%
                     \@ifundefined{jb@morethanonecite}{\idemSfname}{\idemsfname}%
                }{%
                    \ifthenelse{\equal{\jb@@gender}{pf}}{%
                        \@ifundefined{jb@morethanonecite}{\idemPfname}{\idempfname}%
                    }{%
                        \ifthenelse{\equal{\jb@@gender}{sn}}{%
                            \@ifundefined{jb@morethanonecite}{\idemSnname}{\idemsnname}%
                        }{%
                            \ifthenelse{\equal{\jb@@gender}{pn}}{%
                                \@ifundefined{jb@morethanonecite}{\idemPnname}{\idempnname}%
                            }{%
                                \@ifundefined{jb@morethanonecite}{\idemSmname}{\idemsmname}%
                            }%
                        }%
                    }%
                }%
            }%
        }%
    }{%
       \ifthenelse{\equal{\bbl@main@language}{english}\and\boolean{jboxford}}{%
           \edfont{\idemname}%
       }{%
           \ifjbcross\edfont{\idemmidname}\else\edfont{\idemname}\fi
       }%
    }%
   \fi
  \fi
}
\newcommand*{\jb@do@idem}{%
  \@ifundefined{idem}{\@namedef{idem}{}}{\relax}%
  \ifjb@same@fullauthor
    \ifthenelse{%
        \equal{\jb@@mult@switch}{1}%                                    1. author wrote multiple works,
        \and\equal{\jb@@shorttitle}{}%                                   2. shorttitle is empty,
        \and\equal{\@nameuse{citefull@\jb@@newauthorcite}}{citefull}%   3. not the very first citation, and
        \and\boolean{jb@no@title@replace}%                              4. replacing shorttitle by title not possible
    }{%
          \@ifundefined{ETFII@\jb@@newauthorcite}{%        The same warning is placed somewhere else,
            \global\@namedef{ETFII@\jb@@newauthorcite}{}%  but we don't want to disturb the user with warnings.
            \jb@package@warningNoLine{\jb@pkg@name}{%
             *** `\jb@@newauthorcite' ***\on@line\MessageBreak
             is an ambiguous citation! Because you are using\MessageBreak
             `titleformat=noreplace', the title field can't\MessageBreak
             be used to replace the missing shorttitle}%
          }{\relax}%
    }{}%
    \ifjb@debug
      \textcolor[named]{WildStrawberry}{%
          \ifjb@debug@br[\fi
            \jb@idem@gender@checked%
          \ifjb@debug@br]\fi
      }%
    \else
        \jb@idem@gender@checked%
    \fi
    \let\jb@@fullname\@empty
    \let\jb@@author\@empty
    \ifthenelse{%
           \equal{\jb@@newpagecite}{\jb@@lastpagecite}%
           \TE@or % normal \or causes problems
           \equal{\jb@@newpagecite}{}%
    }{%
           \ifjb@opcit\else
           \@ifundefined{jb@morethanonecite}{%
             \ifjbidemabbrvwithperiod
                \ifthenelse{\equal{\jb@@mult@switch}{1}\TE@or\equal{\jb@@title@switch}{1}}{}{%
                   \global\jb@footnote@periodfalse
                }%
             \fi
           }{\global\jb@footnote@periodtrue}%
           \fi
    }{}%
  \fi
}
\newcommand*{\jb@test@last@author@idem}{%
   \ifjb@see
     \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{}{%
       \jb@formatted@co@author%
       \let\idemname\idemmidname
       \let\jb@@newannotatorcite\@empty
     }%
     \jb@do@idem
   \else
     \ifjb@annotator@last
         \jb@do@idem
         \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{}{%
           \jbhowsepannotatorlast%
           \jb@formatted@co@author%
           \let\idemname\idemmidname
           \let\jb@@newannotatorcite\@empty
         }%
     \else
         \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{}{%
           \jb@formatted@co@author%
           \jbhowsepannotatorfirst%
           \let\idemname\idemmidname
           \let\jb@@newannotatorcite\@empty
         }%
         \jb@do@idem
     \fi
   \fi
}%
\newcommand*{\jb@makeibidem}{%
  \ifthenelse{\equal{\jb@@author}{empty}}{%
    \jb@all@titlestrue
    \let\jbhowsepannotatorlast\@empty
    \ifjb@see\else
       \let\jb@@newannotatorcite\@empty
    \fi
  \@ifundefined{MISS@##3}{%
    \global\@namedef{MISS@##3}{}%
    \jb@package@warningNoLine{\jb@pkg@name}{%
    The author of `\jb@@newauthorcite'\MessageBreak
    is missing, I assume you know what %
    you are doing}%
    }{\relax}%
  }{\relax}%
  \ifthenelse{\boolean{jb@ibidem}}{%
    \protected@edef\jb@tempcnt{\thejbbibcnt}%
    \stepcounter{jbbibcnt}%
    \ifjb@fn
      \begingroup
        \label{ibidem:\thejbbibcnt}%
      \endgroup
    \fi
    \ifthenelse{\equal{\jb@@newauthorcite}{\jb@@lastauthorcite}}{%
      \@tempcnta=\jb@tempcnt
        \ifjb@ibidem@double@pagewise
         \advance\@tempcnta\@ne
        \fi
      \protected@edef\jb@idemcnta{\the\@tempcnta}%
      \ifthenelse{\boolean{jb@ibidem@pagewise}}{%
        \ifthenelse{%
           \(%
               \boolean{jb@ibidem@double@pagewise}%
             \and
               \isodd{\jb@simple@pageref@by@heiko{ibidem:\thejbbibcnt}}
             \and
               \equal{%
                  \jb@simple@pageref@by@heiko{ibidem:\jb@idemcnta}}{%
                  \jb@simple@pageref@by@heiko{ibidem:\thejbbibcnt}}%
           \)%
           \or
             \equal{%
               \jb@simple@pageref@by@heiko{ibidem:\jb@tempcnt}}{%
               \jb@simple@pageref@by@heiko{ibidem:\thejbbibcnt}}%
        }{%
          \jb@test@last@author@ibidem
          \jb@lookatfalse
        }{%
          \relax
        }%
      }{%
        \jb@test@last@author@ibidem
      }% jb@ibidem@pagewise end
  }{\relax}% authors equal
  }{\relax}% jb@ibidem
}%
\newcommand*{\jb@makeidem}{%
 \ifjbweareinbib\else
  \ifthenelse{\boolean{jb@idem}}{%
    \protected@edef\jb@idemcnta{\theidemcnt}%
    \stepcounter{idemcnt}%
    \ifjb@fn
      \begingroup
        \label{idem:\theidemcnt}%
      \endgroup
    \fi
    \ifjb@same@fullauthor
      \@tempcnta=\jb@idemcnta
        \ifjb@idem@double@pagewise
            \advance\@tempcnta\@ne
        \fi
      \protected@edef\jb@idemcntb{\the\@tempcnta}%
      \ifthenelse{\boolean{jb@idem@pagewise}}{%
           \ifthenelse{%
                  \boolean{jb@idem@double@pagewise}%
                \and
                  \isodd{\jb@simple@pageref@by@heiko{idem:\theidemcnt}}%
                \and
                  \equal{%
                     \jb@simple@pageref@by@heiko{idem:\jb@idemcntb}}{%
                     \jb@simple@pageref@by@heiko{idem:\theidemcnt}}%
           }{%
               \jb@test@last@author@idem
           }{%
               \ifthenelse{%
                    \equal{\jb@simple@pageref@by@heiko{idem:\jb@idemcnta}}{%
                           \jb@simple@pageref@by@heiko{idem:\theidemcnt}}%
               }{%
                    \jb@test@last@author@idem
               }{}%
           }%
      }{%
           \jb@test@last@author@idem
      }%
    \fi
  }{}%
 \fi
}%
\newcommand{\jb@make@ibidem@name@title}{%
   \jb@relaxforemptyauthor
   \ifthenelse{\equal{\jb@@shorttitle}{}}{%
      \ifjb@no@title@replace\else
       \ifthenelse{\equal{\jb@@mult@switch}{1}}{%
         \jbhowsepbeforetitle\jbfulltitlefont{\jb@@title}%
       }{}%
      \fi%
   }{%
      \ifthenelse{\equal{\jb@@mult@switch}{1}}{%
         \jbhowsepbeforetitle\jbshorttitlefont{\jb@@shorttitle}%
      }{}%
      \@ifundefined{TITLE@##3}{\global\@namedef{TITLE@##3}{used}}{}%
   }%
  \ifjb@author@year\ifjb@yearaftertitle\jb@formatted@year\fi\fi
}%
\newcommand*{\jb@makecheckednameibidem}{%
 \ifjb@fullcite@again\else
  \ifjb@ibidem@with@name
   \jb@allow@adding@of@pagerangefalse
   \ifthenelse{\equal{\jb@@author}{empty}}{%
    \jb@second@extra@spacefalse}{\relax}%
   \ifjb@debug@br[\fi
   \jb@formatted@co@author@in%
   \ifjb@ibidem@with@short@name
    \ifthenelse{\equal{\jb@@author}{empty}}{%
      \jbauthorfont{\jb@@fullname}%
    }{%
      \jbauthorfont{\jb@@author}%
    }%
   \else
     \jb@@fullname%
   \fi
   \ifjb@author@year\ifjb@yearafterauthor\jb@formatted@year\fi\fi
   \ifthenelse{\equal{\jb@@mult@switch}{1}}{%
    \@ifundefined{MULT@##3}{%
      \global\@namedef{MULT@##3}{}%
      \ifjb@ibidem@with@name@and@title\else
       \ifjb@ibidem@with@name@and@title@auto\else
        \jb@package@warningNoLine{\jb@pkg@name}{%
        The author of `\jb@@newauthorcite'\MessageBreak
        is cited with more than one work, I'm switching\MessageBreak
        to `ibidem=name&title&auto' to avoid\MessageBreak
        ambiguous citations}%
        \global\jb@ibidem@with@name@and@title@autotrue
      \fi\fi
    }{\relax}%
   }{\relax}%
   \ifjb@ibidem@with@name@and@title
        \jb@make@ibidem@name@title%
   \else
      \ifjb@ibidem@with@name@and@title@auto
         \ifjb@same@author@different@work
              \jb@make@ibidem@name@title
         \fi
      \fi
   \fi
     \ifthenelse{\equal{\jb@@title}{}}{%
       \ifthenelse{\equal{\jb@@shorttitle}{}}{%
            \IbidemName%
        }{,\space\IbidemMidName}%
     }{,\space\IbidemMidName}%
   \ifthenelse{%
        \equal{\jb@@newpagecite}{\jb@@lastpagecite}%
        \TE@or % normal \or causes problems
        \equal{\jb@@newpagecite}{}%
   }{%
        \global\let\jb@@newpagecite\@empty
        \ifjb@opcit\else
           \global\jb@footnote@periodfalse
        \fi
   }{}%
   \jb@relaxcommandsforfullcite
   \ifjb@debug@br]\fi
  \fi
 \fi
}%
\newcommand*{\jb@dofullcite}{%
 \ifjb@debug
   \textcolor[named]{Red}{%
   \ifjb@debug@br[\fi
    \jb@formatted@co@author@in\jb@use@fullcite%
   \ifjb@debug@br]\fi}%
 \else
   \jb@formatted@co@author@in\jb@use@fullcite%
 \fi%
 \jb@relaxcommandsforfullcite
 \let\jb@extraspace\@empty
 \jb@allow@lookat@for@fullcitefalse
}%
\newcommand*{\jb@makeagainfullcite}{%
 \ifjb@fullcite@again
   \jb@allow@adding@of@pagerangefalse
   \ifthenelse{%
    \equal{\@nameuse{\jb@@newauthorcite}}{allnextshort}}{%
      \relax
   }{%
    \jb@dofullcite%
   }%
 \else
  \ifthenelse{%
    \equal{\@nameuse{\jb@@newauthorcite}}{allnextfull}}{%
    \jb@dofullcite%
  }{%
    \relax
  }%
 \fi
}%
\newcommand*{\jb@relaxforemptyauthor}{%
  \ifthenelse{\equal{\jb@@author}{empty}}{%
    \let\jb@@author\@empty
    \let\jbhowsepbeforetitle\relax
    \let\jb@extraspace\@empty
    }{\relax}%
}%
\newcommand*{\jb@warningfootciteusage}{%
  \ifjb@cite@no@title
   \ifthenelse{%
        \equal{\jb@@mult@switch}{1}%
        \and
        \not\boolean{jb@author@year}%
   }{%
       \jb@package@warning{\jb@pkg@name}{%
       *** `\jb@@newauthorcite' ***\MessageBreak
       is an ambiguous citation! Beware of\MessageBreak
       using \string\[foot]cite*}%
   }{\relax}%
  \fi
}%
\newcommand*{\jb@checktitlefields}{%
 \ifthenelse{\equal{\jb@@mult@switch}{1}}{%
   \ifthenelse{\equal{\jb@@shorttitle}{}\and\not\boolean{jb@author@year}}{%
     \ifthenelse{\equal{\jb@@title}{}}{%
       \let\jb@extraspace\@empty
       \@ifundefined{ETF@\jb@@newauthorcite}{%
         \global\@namedef{ETF@\jb@@newauthorcite}{}%
         \jb@package@warning{\jb@pkg@name}{%
           *** `\jb@@newauthorcite' ***\MessageBreak
           is an ambiguous citation! The `shorttitle'\MessageBreak
           can't be used. I tried to substitute with\MessageBreak
           `title' field - without success, please check the\MessageBreak
           citation}{\relax}%
       }{\relax}%
     }{%
       \ifthenelse{%
          \equal{\@nameuse{citefull@\jb@@newauthorcite}}{citefull}%
            \or
          \boolean{jbcross}%
       }{%
          \ifjbweareinbib\else
           \ifjb@no@title@replace
            \@ifundefined{ETFII@\jb@@newauthorcite}{%
              \global\@namedef{ETFII@\jb@@newauthorcite}{}%
              \jb@package@warningNoLine{\jb@pkg@name}{%
               *** `\jb@@newauthorcite' ***\on@line\MessageBreak
               is an ambiguous citation! Because you are using\MessageBreak
               `titleformat=noreplace', the title field can't\MessageBreak
               be used to replace the missing shorttitle}%
            }{\relax}%
         \fi\fi
       }{\relax}%
     }%
   }{\relax}%
 }{%
     \@ifundefined{jb@fm@\@citeb}{}{%
         \ifthenelse{\equal{\jb@@mult@switch}{0}%
                     \and\not\boolean{jbweareinbib}%
                     \and\boolean{jb@no@title@replace}%
         }{%
              \@ifundefined{ETFII@\jb@@newauthorcite}{%
                \global\@namedef{ETFII@\jb@@newauthorcite}{}%
                \jb@package@warningNoLine{\jb@pkg@name}{%
                 *** `\jb@@newauthorcite' ***\on@line\MessageBreak
                 is an ambiguous citation! Because you are using\MessageBreak
                 `titleformat=noreplace', the title field can't\MessageBreak
                 be used to replace the missing shorttitle}%
              }{\relax}%
         }{\relax}%
     }%
 }%
}%
\newcommand*{\jb@maketitlewishestrue}{%
  \ifjb@all@titles\def\jb@@title@switch{1}\fi
  \ifjb@cite@title\def\jb@@title@switch{1}\fi
  \ifjb@cite@no@title\def\jb@@title@switch{0}\fi
}%
\newcommand*{\jb@makeannotatorlastwithtitle}{%
 \ifjb@noauthorforcitetitle\else
  \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{%
   \jb@make@author@emph%
   \jb@formatted@author%
   \jb@checked@edition%
  }{%
   \jb@formatted@author%
   \ifjb@ssed@after@author\jb@checked@edition\fi
   \jb@make@annotator@emph%
   \jbhowsepannotatorlast%
   \jb@formatted@co@author%
   \ifjb@ssed@after@author\else\jb@checked@edition\fi
  }%
 \fi
 \ifthenelse{%
    \equal{\@nameuse{\jb@@newauthorcite}}{allnextnotitle}}{%
 }{%
    \jb@checked@title%
 }%
}%
\newcommand*{\jb@makeannotatorfirstwithtitle}{%
 \ifjb@noauthorforcitetitle\ifjb@see\jb@formatted@co@author@see\fi\else
  \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{%
   \jb@make@author@emph%
   \jb@formatted@author%
   \jb@checked@edition%
  }{%
   \jb@make@annotator@emph%
   \jb@formatted@co@author%
   \jbhowsepannotatorfirst%
   \jb@formatted@author%
   \jb@checked@edition%
  }%
 \fi
 \ifthenelse{%
    \equal{\@nameuse{\jb@@newauthorcite}}{allnextnotitle}}{%
 }{%
    \jb@checked@title%
 }%
}%
\newcommand*{\jb@makeannotatorlastwithouttitle}{%
 \ifjb@noauthorforcitetitle\else
  \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{%
   \jb@make@author@emph%
   \jb@formatted@author%
   \jb@checked@edition%
  }{%
   \jb@formatted@author%
   \ifjb@ssed@after@author\jb@checked@edition\fi
   \jb@make@annotator@emph%
   \jbhowsepannotatorlast%
   \jb@formatted@co@author%
   \ifjb@ssed@after@author\else\jb@checked@edition\fi
  }%
 \fi
}%
\newcommand*{\jb@makeannotatorfirstwithouttitle}{%
 \ifjb@noauthorforcitetitle\else
  \ifthenelse{\equal{\jb@@newannotatorcite}{\@empty}}{%
   \jb@make@author@emph%
   \jb@formatted@author%
   \jb@checked@edition%
  }{%
   \jb@make@annotator@emph%
   \jb@formatted@co@author%
   \jbhowsepannotatorfirst%
   \jb@formatted@author%
   \jb@checked@edition%
  }%
 \fi
}%
\newcommand*{\jb@makecheckedcite}{%
  \ifthenelse{\not\equal{\jb@@howcited}{}\and\boolean{jbusehowcitedforcite}}{%
     \ifjb@first@cite\else\jb@@howcited\fi
  }{%
     \ifthenelse{\equal{\jb@@type}{archival}}{%
       \jb@@title%
     }{%
        \ifthenelse{%
           \equal{\jb@@mult@switch}{1}%
           \or\equal{\jb@@title@switch}{1}%
           \and\not\boolean{jb@starred@cite}%
        }{%
           \ifjb@annotator@last
               \jb@makeannotatorlastwithtitle
           \else
               \jb@makeannotatorfirstwithtitle
           \fi
        }{%
           \ifjb@annotator@last
               \jb@makeannotatorlastwithouttitle
           \else
               \jb@makeannotatorfirstwithouttitle
           \fi
        }%
        \jb@aftertitleedition%
        \ifjb@yearaftertitle\jbyear\fi
     }%
  }%
}%
\newcommand*{\jb@ssed@size}{\tiny}%
\newlength{\jb@length@i}  \settowidth{\jb@length@i}  {\jb@ssed@size 1}%
\newlength{\jb@length@ii} \settowidth{\jb@length@ii} {\jb@ssed@size 11}%
\newlength{\jb@length@iii}\settowidth{\jb@length@iii}{\jb@ssed@size 111}%
\newcommand*{\jb@kern@before@sepi}  {\hspace{-\jb@length@i}}%
\newcommand*{\jb@kern@after@sepi}   {\hspace{\jb@length@i}}%
\newcommand*{\jb@kern@before@sepii} {\hspace{-\jb@length@ii}}%
\newcommand*{\jb@kern@after@sepii}  {\hspace{\jb@length@ii}}%
\newcommand*{\jb@kern@before@sepiii}{\hspace{-\jb@length@iii}}%
\newcommand*{\jb@kern@after@sepiii} {\hspace{\jb@length@iii}}%
\newcommand*{\jb@kern@sep}{}%
\newcommand*{\jb@extract@starting@page}[1]{%
    \protected@edef\sp@tempa{#1}%
    \expandafter\jb@@extract@starting@page\sp@tempa-\end%
}
\newcommand\jb@@start@page@switch{0}%
\newcommand*{\jb@@extract@starting@page}{}% make sure it's undefined
\def\jb@@extract@starting@page#1-#2\end{%
   \def\jb@@start@page{#1}%
}%
\def\sndecmd{}%
\DeclareRobustCommand*{\nopage}{}
\newcommand*{\pageadd}[1]{{\space{}#1}}
\newcommand*{\jbprformat}[1]{%
 \ifjb@formatted@pages
    \if\nopage#1\else
        \jb@parse@page{#1}%
    \fi
 \else
    #1%
 \fi
}%
\newcommand{\jbpagesnamesep}{\,}%
\newcommand{\bibpagesnamesep}{\,}%
\newcommand{\jbPageName}{\jbpagename\jbpagesnamesep}%
\newcommand{\jbPagesName}{\jbpagesname\jbpagesnamesep}%
\newcommand{\bibPageName}{\bibpagename\bibpagesnamesep}%
\newcommand{\bibPagesName}{\bibpagesname\bibpagesnamesep}%
\newcommand*{\jb@parse@page}[1]{%
  \ifthenelse{\equal{\jbpagename}{}\and\equal{\jbpagesname}{}}{\def\jbpagesnamesep{}}{}%
  \ifthenelse{\equal{\bibpagename}{}\and\equal{\bibpagesname}{}}{\def\bibpagesnamesep{}}{}%
    \jb@if@contains@ff{#1}{%
        \ifjbweareinbib
            \bibPagesName#1%
        \else
            \jbPagesName#1%
        \fi
    }{%
        \jb@if@contains@f{#1}{%
            \ifjbweareinbib
                \bibPagesName#1%
            \else
                \jbPagesName#1%
            \fi
        }{%
            \jb@if@contains@endash{#1}{%
                \ifjbweareinbib
                    \bibPagesName#1%
                \else
                    \jbPagesName#1%
                \fi
            }{%
                \jb@if@contains@multiple{#1}{%
                    \ifjbweareinbib
                        \bibPagesName#1%
                    \else
                        \jbPagesName#1%
                    \fi
                }{%
                    \ifjbweareinbib
                        \bibPageName#1%
                    \else
                        \jbPageName#1%
                    \fi
                }%
            }%
        }%
    }%
}%
\newcommand*{\jb@if@contains@multiple}[1]{%
    \protected@edef\@tempa{#1}%
    \expandafter\expandafter\expandafter\jb@@if@contains@multiple
    \expandafter\@tempa\space\@nil
}
\newcommand*{\jb@if@contains@endash}[1]{%
    \protected@edef\@tempa{#1}%
    \expandafter\jb@@if@contains@endash\@tempa--\@nil}%
\newcommand*{\jb@if@contains@ff}[1]{%
    \protected@edef\@tempa{#1}%
    \expandafter\jb@@if@contains@ff\@tempa ff\@nil}%
\newcommand*{\jb@if@contains@f}[1]{%
    \protected@edef\@tempa{#1}%
    \expandafter\jb@@if@contains@f\@tempa f\@nil}%
\newcommand*{\jb@@if@contains@multiple}{}
\def\jb@@if@contains@multiple#1 #2\@nil{%
    \ifx\\#2\\% is #2 empty?
        \expandafter\@secondoftwo
    \else
        \expandafter\@firstoftwo
    \fi
}%
\newcommand*{\jb@@if@contains@endash}{}
\def\jb@@if@contains@endash#1--#2\@nil{%
    \ifx\\#2\\% is #2 empty?
        \expandafter\@secondoftwo
    \else
        \expandafter\@firstoftwo
    \fi
}%
\newcommand*{\jb@@if@contains@f}{}
\def\jb@@if@contains@f#1f#2\@nil{%
    \ifx\\#2\\% is #2 empty?
        \expandafter\@secondoftwo
    \else
        \expandafter\@firstoftwo
    \fi
}%
\newcommand*{\jb@@if@contains@ff}{}
\def\jb@@if@contains@ff#1ff#2\@nil{%
    \ifx\\#2\\% is #2 empty?
        \let\sndecmd\@secondoftwo
    \else
        \def\@tempa{ff}%
        \def\@tempb{#2}%
        \ifx\@tempa\@tempb
            \let\sndecmd\@firstoftwo
        \else
            \let\sndecmd\@secondoftwo
        \fi
    \fi
    \sndecmd
}%
\newcommand*{\jbpagesformat}[1]{#1}%
\newcommand*{\jbafterstartpagesep}{,}%
\newcommand*{\formatpages}{\@ifnextchar[{\jb@formatpages}{\jb@formatpages[]}}%
\def\jb@formatpages[#1]{\@ifnextchar[{\jb@@formatpages[#1]}{\jb@@formatpages[#1][]}}%
\def\jb@@formatpages[#1][#2]#3#4#5{%
  \def\jb@afterstartpagesep{#1}%
  \def\jb@beforestartpagesep{#2}%
  \def\jb@start@page@for@types{#3}%
  \def\jb@normalpageldelim{#4}%
  \def\jb@normalpagerdelim{#5}%
  \ifthenelse{\equal{#1}{}\and\equal{#2}{}%
  }{%
    \renewcommand*{\jbpagesformat}[1]{%
        \jb@normalpageldelim##1\jb@normalpagerdelim}%
  }{\jb@start@pagetrue}%
}%
\newcommand*{\formatarticlepages}[3][]{\formatpages[#1]{article}{#2}{#3}}%
\newcommand*{\jb@do@ssed@kerning}{%
  \ifjb@ssed@after@author\else
    \ifthenelse{\equal{\jb@@edition}{}}{}{%
      \ifthenelse{\jb@@edition>9}{%
          \ifthenelse{\jb@@edition>99}{%
            \ifjb@comma@before@rest\,\,\,\,\,\,\else\kern\jbedwidth\fi
          }{%
            \ifjb@comma@before@rest\,\,\,\,\else\kern\jbedwidth\fi
          }%
      }{%
        \ifjb@comma@before@rest\,\,\else\kern\jbedwidth\fi
      }%
    }%
  \fi
}%
\newcommand\herename{}
\newcommand*{\jbfirstcitepageranges}{\jb@allow@adding@of@pagerange@for@first@citetrue}
\newcommand*{\jb@add@something@before@page}{%
   \ifthenelse{%
        \boolean{jb@allow@adding@of@pagerange@for@first@cite}%
        \and
        \not\equal{\jb@@pages}{}%
        \and
        \(
            \boolean{jb@first@cite}%
            \or
            \boolean{jb@fullcite@again}%
        \)
   }{%
        \herename%
   }{}%
}%
\newcommand*{\jb@before@page@sep}{%
    \unskip\jb@kern@sep\space%
    \ifjb@ssed@recent@kerned
       \jb@do@ssed@kerning%
    \fi
    \jb@add@something@before@page%
}%
\newcommand*{\jb@formatted@start@page}{%
   \ifthenelse{%
     \not\equal{\jb@@start@page}{}%
     \and
     \boolean{jb@allow@adding@of@pagerange}%
     \and
     \(%
        \boolean{jb@start@page}%
        \and
        \equal{\jb@start@page@for@types@arg}{1}%
     \)%
     \and\not\boolean{jb@switchidemofflocally}%
   }{%
     \ifthenelse{\equal{\jb@beforestartpagesep}{}}{}{%
        \renewcommand*{\jbbeforestartpagesep}{\jb@beforestartpagesep}}%
     \renewcommand*{\jbafterstartpagesep}{\jb@afterstartpagesep}%
     \renewcommand*{\jbpagesformat}[1]{%
            \jb@normalpageldelim##1\jb@normalpagerdelim}%
     \jb@allow@adding@of@pagerangefalse
     \jbbeforestartpagesep%
     \jbprformat{\jb@@start@page}%
     \ifthenelse{\equal{\jb@@newpagecite}{}}{}{%
        \let\jb@before@page@sep\@empty
        \jbafterstartpagesep%
     }%
   }{}%
}
\newcommand*{\jb@@formatted@pages}{%
  \ifthenelse{\equal{\jb@@pages}{}}{%
      \ifthenelse{\equal{\jb@@newpagecite}{}}{}{%
         \jb@before@page@sep%
         \jbpagesformat{\jb@@newpagecite}%
      }%
  }{%
      \jb@formatted@start@page%
      \ifjb@always@pageranges
        \ifjb@first@cite
            \ifjb@allow@adding@of@pagerange
               \jb@before@page@sep%
               \jbprformat{\jb@@pages}%
            \fi
        \fi
        \ifthenelse{\equal{\jb@@newpagecite}{}}{}{%
           \jb@before@page@sep%
           \jbpagesformat{\jb@@newpagecite}%
        }%
      \else
         \ifjb@tested@pageranges
            \ifthenelse{\equal{\jb@@newpagecite}{}}{%
                \ifjb@allow@adding@of@pagerange
                  \ifthenelse{\not\equal{\diffpageibidemname}{\samepageibidemname}%
                              \TE@or
                              \not\equal{\diffpageibidemmidname}{\samepageibidemmidname}%
                  }{%
                     \jb@package@warning{\jb@pkg@name}{%
                     You have redefined one ore more ibidem macros\MessageBreak
                     while using `pages=test'. Please note it is\MessageBreak
                     possible that you did not get the desired\MessageBreak
                     results}%
                  }{}%
                     \jb@before@page@sep%
                     \jbprformat{\jb@@pages}%
                \fi
            }{%
               \jb@before@page@sep%
               \jbpagesformat{\jb@@newpagecite}%
            }%
         \else
             \ifthenelse{\equal{\jb@@newpagecite}{}}{}{%
                \jb@before@page@sep%
                \jbpagesformat{\jb@@newpagecite}%
             }%
         \fi
      \fi
  }%
}%
\newcommand*{\jb@checked@kerning}{%
    \jb@@formatted@pages\unskip%
}%
\newcommand*{\jbpagesep}{,}%
\newcommand*{\jb@makecheckedpages}{%
 \ifthenelse{\equal{\jb@@newpagecite}{\@empty}}{%
    \ifjb@suppress@dot@for@howcited\else
     \ifjbcross\else
      \ifjb@allow@dot@for@lookat
          \ifthenelse{\boolean{jb@comma@before@rest}}{%
             \ifthenelse{%
                   \(
                     \not\equal{\jb@@pages}{}%
                     \and
                     \(
                         \boolean{jb@always@pageranges}%
                         \or
                         \boolean{jb@tested@pageranges}%
                     \)
                   \)
                   \or
                   \(
                       \not\equal{\jb@@start@page}{}%
                       \and
                       \boolean{jb@allow@adding@of@pagerange}%
                       \and
                       \boolean{jb@start@page}%
                       \and
                       \equal{\jb@@type}{article}%
                   \)
             }{%
               \renewcommand*{\jb@kern@sep}{\jbpagesep}%
             }{%
               \renewcommand*{\jb@kern@sep}{}%
             }%
             \jb@checked@kerning%
          }{%
             \renewcommand*{\jb@kern@sep}{}%
             \jb@checked@kerning%
          }%
      \fi
     \fi
    \fi
 }{%
  \ifjb@period
      \ifjb@comma@before@rest
        \renewcommand*{\jb@kern@sep}{\jbpagesep}%
        \jb@checked@kerning%
      \else
        \renewcommand*{\jb@kern@sep}{}%
        \jb@checked@kerning%
      \fi
  \else
      \ifjb@comma@before@rest
        \renewcommand*{\jb@kern@sep}{\jbpagesep}%
        \jb@checked@kerning%
      \else
        \renewcommand*{\jb@kern@sep}{}%
        \jb@checked@kerning%
      \fi
  \fi
 }%
}%
\newcommand*{\jb@list}{}
\newcommand*{\jb@opcit@list}{}
\newcommand*{\jb@elt}{}
\let\jb@elt\relax
\newtoks\jb@temptoks
\newcommand*{\jb@@append}[2]{%
    \ifthenelse{\equal{#2}{}}{%
        \protected@xdef#2{#1}%
    }{%
        \jb@temptoks=\expandafter{#2}%
        \protected@xdef#2{\the\jb@temptoks,#1}%
    }%
}%
\newcommand*{\jb@append}[2]{%
    \jb@if@elem{#1}{#2}{%
    }{%
        \jb@@append{#1}{#2}%
    }%
}%
\newcommand*{\jb@list@tempa}{}
\newcommand*{\jb@list@tempb}{}
\newcommand*{\jb@test@cmd}{}
\newcommand*{\jb@if@elem}[2]{%
    \protected@edef\jb@list@tempa{#1}%
    \let\jb@test@cmd\@secondoftwo
    \@for\jb@list@tempb:=#2\do{%
        \ifx\jb@list@tempa\jb@list@tempb
             \let\jb@test@cmd\@firstoftwo
        \fi
    }%
    \jb@test@cmd
}%
\newcommand*{\jb@undefineall}[2]{%
 \ifthenelse{\equal{#2}{opcit}}{%
    \ifthenelse{\equal{\jb@reset@opcit@for}{chapter}}{%
           \@ifundefined{resetopcit\thechapter}{%
                \global\@namedef{resetopcit\thechapter}{}%
                \jb@typeout{Package jurabib Info: Resetting `#2'
                     for Chapter \thechapter}%
                \@for\jb@list@tempa:=#1\do{%
                    \expandafter\gdef\csname\jb@list@tempa\endcsname{}%
                }%
           }{\relax}%
    }{%
           \@ifundefined{resetcf\thesection}{%
                \global\@namedef{resetcf\thesection}{}%
                \jb@typeout{Package jurabib Info: Resetting `#2'
                     for Section \thesection}%
                \@for\jb@list@tempa:=#1\do{%
                    \expandafter\gdef\csname\jb@list@tempa\endcsname{}%
                }%
           }{\relax}%
    }%
 }{%
    \ifthenelse{\equal{\jb@resetfor}{chapter}}{%
           \@ifundefined{resetcitefull\thechapter}{%
                \global\@namedef{resetcitefull\thechapter}{}%
                \jb@typeout{Package jurabib Info: Resetting `#2'
                     for Chapter \thechapter}%
                \@for\jb@list@tempa:=#1\do{%
                    \expandafter\gdef\csname\jb@list@tempa\endcsname{}%
                }%
           }{\relax}%
    }{%
           \@ifundefined{resetcitefull\thesection}{%
                \global\@namedef{resetcitefull\thesection}{}%
                \jb@typeout{Package jurabib Info: Resetting `#2'
                     for Section \thesection}%
                \@for\jb@list@tempa:=#1\do{%
                    \expandafter\gdef\csname\jb@list@tempa\endcsname{}%
                }%
           }{\relax}%
    }%
 }%
}%
\newcommand*{\jb@showelems}[1]{%
 \@for\jb@list@tempa:=#1\do{%
   \jb@typeout{\jb@list@tempa:
     \expandafter\meaning\csname\jb@list@tempa\endcsname}%
 }%
}%
\newcommand*{\jb@firstcitefull}{%
 \ifthenelse{\equal{\@nameuse{\jb@@newauthorcite}}{allnextshort}\or
             \equal{\@nameuse{\jb@@newauthorcite}}{allnextnotitle}%
 }{}{%
  \@ifundefined{jb@resetfor}{}{%
   \ifthenelse{%
     \(
        \equal{\jb@resetfor}{chapter}%
        \or
        \equal{\jb@resetfor}{section}%
     \)
     \and\value{citefull}=0%
   }{%
     \jb@undefineall{\jb@list}{citefull=first}%
   }{}%
  }%
  \ifthenelse{%
              \not\boolean{jbweareinbib}%
              \and%
              \boolean{jb@firstcite@full}%
              \and%
              \equal{\jb@@cite@fullfirst@switch}{1}%
              \and\not\boolean{jb@all@full}%
              \and\not\boolean{jb@no@lookat@for@bib}%
              \and\not\equal{\jb@@type}{archival}%
  }{%
     \ifthenelse{\equal{\@nameuse{citefull@\jb@@newauthorcite}}{citefull}}{%
       \let\jb@extraspace\@empty
       \@ifundefined{jb@morethanonecite}{%
         \jb@makecheckednameibidem%
       }{\relax}%
       \ifjb@ibidem@with@name@and@title\else
         \@ifundefined{ibidem}{\let\jb@extraspace\space}{}%
       \fi
     }{% the first cite
       \jb@first@citetrue
       \ifthenelse{\not\equal{\jb@start@page@for@types@arg}{1}}{%
         \jb@allow@adding@of@pagerangefalse
       }{}%
       \global\@namedef{citefull@\jb@@newauthorcite}{citefull}%
       \global\@namedef{NORMCR@\jb@@newauthorcite}{}%
       \global\@namedef{ARTCR@\jb@@newauthorcite}{}%
       \global\@namedef{INCCR@\jb@@newauthorcite}{}%
       \jb@append{citefull@\jb@@newauthorcite}{\jb@list}%
       \jbonlyforfirstcitefullbegin%
       \let\jb@extraspace\@empty
       \ifjb@lookat
        \ifjb@allow@lookat@for@fullcite
         \begingroup
          \label{look@\@citeb:\jb@reset@look@label@for}%
          \hyper@jbanchorstart{look@\@citeb:\jb@reset@look@label@for}\hyper@jbanchorend%
         \endgroup
         \@namedef{look@\jb@@newauthorcite}{firsttime}%
        \fi
       \fi
       \ifjb@debug
         \textcolor[named]{Blue}{%
          \ifjb@debug@br[\fi
            \jb@formatted@co@author@in\jb@use@fullcite%
          \ifjb@debug@br]\fi}%
       \else
         \jb@formatted@co@author@in\jb@use@fullcite%
       \fi
       \jbonlyforfirstcitefullend%
       \let\jb@makeagainfullcite\@empty
       \let\OpCit\@empty
       \jb@relaxcommandsforfullcite
     }%
  }{%
     \jb@allow@lookat@for@fullcitefalse
  }%
 }%
}%
\newcommand*{\jb@ssed@format}{%
  \ifthenelse{\equal{\jb@@edition}{}}{}{%
   \textsuperscript{\jb@ssed@size\jb@@edition}}}%
\newcommand*{\jb@ssed@notitle@format}{%
  \ifthenelse{\equal{\jb@@edition}{}}{}{%
   \textsuperscript{\jb@ssed@size\jb@@edition}%
  }%
}%
\newcommand{\jb@@samework@edition@differs}{}%
\newlength{\jbedwidth}
\newcommand*{\jb@make@superscript@edition}{%
 \ifthenelse{\equal{\jb@@edition}{\@empty}}{}{%
 \ifjb@ssed@all
  \renewcommand*{\jb@checked@edition}{%
    \ifthenelse{\equal{\jb@@mult@switch}{1}\TE@or\equal{\jb@@title@switch}{1}}{%
        \ifthenelse{%
            \equal{\jb@@samework@edition@differs}{1}%
        }{%
            \let\jb@checked@title\@empty
            \jb@ssed@format%
            \settowidth{\jbedwidth}{\jb@ssed@format}%
            \ifjb@ssed@kerning@wanted\ifjb@ssed@after@author\else
                \kern-\jbedwidth\jb@ssed@recent@kernedtrue\fi
            \fi
        }{%
            \renewcommand*{\jb@aftertitleedition}{\jb@ssed@format}%
        }%
    }{%
        \jb@ssed@notitle@format%
    }%
 }%
 \else
   \ifjb@ssed@commented
    \renewcommand*{\jb@checked@edition}{%
      \ifthenelse{\equal{\jb@@type}{commented}}{%
          \ifthenelse{\equal{\jb@@mult@switch}{1}\TE@or\equal{\jb@@title@switch}{1}}{%
              \ifthenelse{%
                  \equal{\jb@@samework@edition@differs}{1}%
              }{%
                  \let\jb@checked@title\@empty
                  \jb@ssed@format%
                  \settowidth{\jbedwidth}{\jb@ssed@format}%
                  \ifjb@ssed@kerning@wanted\ifjb@ssed@after@author\else
                    \kern-\jbedwidth\jb@ssed@recent@kernedtrue\fi
                  \fi
              }{%
                  \renewcommand*{\jb@aftertitleedition}{\jb@ssed@format}%
              }%
          }{%
              \jb@ssed@notitle@format%
          }%
      }{}%
    }%
   \else
     \ifjb@ssed@sw
       \ifthenelse{\equal{\jb@@edition@switch}{1}}{%
            \renewcommand*{\jb@checked@edition}{%
               \ifthenelse{\equal{\jb@@mult@switch}{1}\TE@or\equal{\jb@@title@switch}{1}}{%
                    \ifthenelse{%
                        \equal{\jb@@samework@edition@differs}{1}%
                    }{%
                        \let\jb@checked@title\@empty
                        \jb@ssed@format%
                        \settowidth{\jbedwidth}{\jb@ssed@format}%
                        \ifjb@ssed@kerning@wanted\ifjb@ssed@after@author\else
                            \kern-\jbedwidth\jb@ssed@recent@kernedtrue\fi
                        \fi
                    }{%
                        \renewcommand*{\jb@aftertitleedition}{\jb@ssed@format}%
                    }%
               }{%
                    \jb@ssed@notitle@format%
               }%
            }%
       }{}%
     \else
       \ifjb@ssed@mult@works
           \renewcommand\jb@checked@edition{%
               \ifthenelse{%
                   \boolean{jb@ssed@mult@works}%
                   \and
                   \equal{\jb@@samework@edition@differs}{1}%
               }{%
                   \let\jb@checked@title\@empty
                   \jb@ssed@format%
                   \settowidth{\jbedwidth}{\jb@ssed@format}%
                   \ifjb@ssed@kerning@wanted\ifjb@ssed@after@author\else
                       \kern-\jbedwidth\jb@ssed@recent@kernedtrue\fi
                   \fi
               }{}%
           }%
       \fi
     \fi
   \fi
 \fi
 }%
}%
\newtoks\jb@ta\newtoks\jb@tb
\newcommand\jbauthorinfo{%
  \begingroup\@sanitize % needed to deactivate \" etc.
  \jb@deactivate@babel
  \catcode`\ =10        % but treat spaces as usual (gobble between arguments)
  \jb@define@verbatim@
}
\newcommand\jb@define@verbatim@[2]{%
  \def\jb@curr@key{#2}\def\jb@list{}\jb@do@authorinfo#1\jb@end\endgroup}
\newcommand\jb@curr@cite{}
\newcommand\jb@last@cite{}
\newcommand\jb@citeasedn[1]{\global\@namedef{jb@#1}{}}
\newcommand\jb@check@edn[1]{%
  \@ifundefined{jb@#1}{%
        \def\jb@@samework@edition@differs{0}%
  }{%
        \def\jb@@samework@edition@differs{1}%
  }%
}
\def\jb@do@authorinfo#1#2\jb@end{%
  \ifthenelse{\equal{#2}{}}{%
    \jb@ta=\expandafter{\jb@list}%
    \jb@tb=\expandafter{#1}%
    \@ifundefined{\the\jb@ta\the\jb@tb}{%
    }{%
        \protected@write\@auxout{}{%
            % save previous label, and current label:
            \string\csname\space jb@citeasedn\string\endcsname{\@nameuse{\the\jb@ta\the\jb@tb}}^^J%
            \string\csname\space jb@citeasedn\string\endcsname{\jb@curr@key}%
        }%
    }%
    \expandafter\global\expandafter\@namedef\expandafter{\the\jb@ta\the\jb@tb\expandafter}\expandafter{\jb@curr@key}%
  }{%
    \jb@ta=\expandafter{\jb@list}%
    \jb@tb=\expandafter{#1}%
    \protected@edef\jb@list{\the\jb@ta\the\jb@tb}%
    \jb@do@authorinfo#2\jb@end
  }%
}
\newcommand\jb@@last@@author{}
\newcommand\jb@@new@@author{}\newcommand*{\footciteyear}{\begingroup\jb@deactivate@babel\@ifnextchar[{\jb@footciteyear}{\jb@footciteyear[]}}%
\def\jb@footciteyear[#1]{\@ifnextchar[{\jb@@footciteyear[#1]}{\jb@@footciteyear[][#1]}}%
\def\jb@@footciteyear[#1][#2]#3{%
    \def\jb@enote@hook{%
        \def\jb@nat@commands{\ifthenelse{\equal{\jb@@year}{}}{?}{\jb@@year}}%
        \renewcommand{\jb@nat@cite@left@sep}{}\renewcommand{\jb@nat@cite@right@sep}{}%
        \jb@footfalse % works for endnotes too
    }%
    \jb@enote@hook
    \jb@foottrue
    \jb@emulate@nat@cite[#1][#2]{#3}\endgroup
}%
\newcommand\jb@@last@@title{}
\newcommand\jb@@new@@title{}
\newcommand\jb@@last@fullname@author{}
\newcommand\jb@@new@fullname@author{}
\newcommand{\jb@do@ibidem@name@title@test}{%
       \def\jb@@new@fullname@author{INTT@\jb@@fullname}% INTT= ibidem name & title test
       \ifthenelse{\equal{\jb@@last@fullname@author}{\jb@@new@fullname@author}%
                   \and\not\equal{\jb@@newauthorcite}{\jb@@lastauthorcite}%
       }{%
           \jb@same@author@different@worktrue
       }{%
           \jb@same@author@different@workfalse
       }%
       \global\let\jb@@last@fullname@author\jb@@new@fullname@author
}%
\newcommand*{\jb@do@if@multiple@bibetal}{\def\jb@@title@switch{1}}
\newcommand*{\jb@make@opcit}{%
            \ifjbweareinbib\else
             \ifjbcross\else
              \ifjb@opcit
                \@ifundefined{jb@reset@opcit@for}{}{%
                   \ifthenelse{%
                      \not\equal{\jb@reset@opcit@for}{}%
                      \and\value{opcit}=0%
                   }{%
                      \jb@undefineall{\jb@opcit@list}{opcit}%
                   }{}%
                }%
                \ifthenelse{\equal{\@nameuse{opcit@\jb@@newauthorcite}}{cited}}{%
                    \jb@@opcittrue
                }{%
                    \global\@namedef{opcit@\jb@@newauthorcite}{cited}%
                    \hyper@jbanchorstart{opcit.\jb@@newauthorcite.\jb@reset@opcit@label@for}%
                    \hyper@jbanchorend%
                    \jb@append{opcit@\@citeb}{\jb@opcit@list}%
                    \jb@@opcitfalse
                }%
              \fi
             \fi
            \fi
}%
\newcommand*{\jb@make@pageranges@for@first@cite}{%
 \ifthenelse{\equal{\@nameuse{citefull@\@citeb}}{citefull}%
             \and\not\boolean{jb@allow@adding@of@pagerange@for@first@cite}%
 }{%
         \let\jbPAGES\@gobble
         \let\jbpages\@gobble
         \let\jbPages\@gobble
         \let\jbartPages\@gobble
 }{%
    \ifthenelse{\(%
                  \equal{\jb@@type}{article}%
                  \or
                  \equal{\jb@@type}{periodical}%
                  \or
                  \equal{\jb@@type}{incollection}%
                \)%
                \and\boolean{jb@allow@adding@of@pagerange@for@first@cite}%
      }{}{%
          \let\jbPAGES\@gobble
          \let\jbpages\@gobble
          \let\jbPages\@gobble
          \let\jbartPages\@gobble
      }%
 }%
}
\def\@citex[#1][#2]#3{%
  \stepcounter{jb@cites@in@footnote}%
  \ifjb@ssed@mult@works\jb@check@edn{#3}\fi
  \ifthenelse{\boolean{jb@foot}\or\(\boolean{jb@super}\and\not\boolean{jb@fn}%
              \and\not\boolean{jbweareinbib}\and\not\boolean{jbweareinendnotes}\)}{%
    \renewcommand*{\@cite}[2]{\unskip\footnote{##1##2\ifthenelse{\boolean{jb@footnote@period}}{\unskip.}{}}}%
  }{%
     \renewcommand*{\@cite}[2]{%
      \ifjb@fn\else\ifjbweareinbib\else\ifjbcross\else\jb@open\fi\fi\fi
        ##1##2%
      \ifjb@fn\else\ifjbweareinbib\else\ifjbcross\else\jb@close\fi\fi\fi
     }%
  }%
  \ifx\relax#1\relax
    \ifx\relax#2\relax
       \ifjb@debug
        \typeout{#3: @citex arg1 and @citex arg2 are empty,}%
        \typeout{#3: I assume \string\cite{key}}%
       \fi
       \def\jb@@newannotatorcite{}%
       \def\jb@@newpagecite{\jbprformat{}}%
    \else
       \ifjb@debug
        \typeout{#3: @citex arg1 is empty or missing/@citex arg2 is #2}%
        \typeout{#3: I assume \string\cite[#2]{key} or \string\cite[][#2]{key}}%
       \fi
       \def\jb@@newannotatorcite{}%
       \def\jb@@newpagecite{\jbprformat{#2}}%
    \fi
  \else
    \ifx\relax#2\relax
       \ifjb@debug
        \typeout{#3: @citex arg1 is #1/@citex arg2 is empty or missing}%
        \typeout{#3: I assume \string\cite[#1][]{key}}%
       \fi
       \ifjb@old@order
          \def\jb@@newannotatorcite{}%
          \def\jb@@newpagecite{\jbprformat{#1}}%
       \else
          \def\jb@@newannotatorcite{#1}%
          \def\jb@@newpagecite{\jbprformat{}}%
       \fi
    \else
       \ifjb@debug
        \typeout{#3: @citex arg1 is #1/@citex arg2 is #2}%
        \typeout{#3: I assume \string\cite[#1][#2]{key}}%
       \fi
       \ifjb@old@order
          \def\jb@@newannotatorcite{#2}%
          \def\jb@@newpagecite{\jbprformat{#1}}%
       \else
          \def\jb@@newannotatorcite{#1}%
          \def\jb@@newpagecite{\jbprformat{#2}}%
       \fi
    \fi
  \fi
  \ifjb@no@nested@crossrefs
    \let\origcrossref\jbcrossrefchecked
    \renewcommand*{\jbcrossrefchecked}[2][]{}%
    \let\origbibces\bibces
    \renewcommand*{\bibces}{}%
  \fi
  \let\@citea\@empty%
  \@cite{%
    \@for\@citeb:=#3\do{%
       \@citea%
       \def\@citea{;\penalty\@m\ %
          \@ifundefined{jb@morethanonecite}{%
             \global\@namedef{jb@morethanonecite}{}}{}%
          \ifthenelse{\equal{\jb@@newpagecite}{\@empty}}{\relax}{%
            \jb@package@warning{\jb@pkg@name}{%
               I assume you know what you're doing %
               using `\jb@@newpagecite'\MessageBreak
               on a citation with more than one\MessageBreak
               author}{\relax}%
          }%
       }%
       \@ifundefined{b@\@citeb}{}{%
           \protected@edef\@tempa{\csname b@\@citeb\endcsname}%
           \protected@edef\jb@@new@@author{\expandafter\jb@fifthofseven\@tempa\@empty}%
       }%
       \ifthenelse{\equal{\jb@@last@@author}{\jb@@new@@author}\and\not\equal{\jb@@new@@author}{}}{%
           \jb@same@fullauthortrue
       }{%
           \jb@same@fullauthorfalse
       }%
       \global\let\jb@@last@@author\jb@@new@@author
       \@ifundefined{jb@morethanonecite}{\relax}{%
           \let\jb@@newannotatorcite\@empty
           \let\idemname\idemmidname
       }%
       \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
       \if@filesw
         \immediate\write
            \@newciteauxhandle{%
               \jb@makehowcited\string\citation{\@citeb}%
            }%
       \fi
       \@ifundefined{b@\@citeb\@extra@b@citeb}{%
          \mbox{\reset@font{\bfseries ?}, #1}%
          \G@refundefinedtrue
          \@latex@warning{%
            Citation `\@citeb' on page \thepage \space undefined
          }%
       }{%
          \begingroup
            \jb@extract%
            \ifjb@always@pageranges\else\ifjb@tested@pageranges
               \ifthenelse{\equal{\jb@@newpagecite}{}}{}{\jb@make@pageranges@for@first@cite}%
               \else\jb@make@pageranges@for@first@cite\fi\fi
            \def\jb@@newauthorcite{\@citeb}%
            \jb@make@opcit
            \jb@call@index{aut}{\@citeb}%
            \jb@call@index{ed}{\@citeb}%
            \jb@call@index{org}{\@citeb}%
            \jb@changefontsforfullcite
            \ifjb@allow@hyper@cite\hyper@jblinkstart{\@citeb}\fi
            \jb@extract%
            \jb@do@ibidem@name@title@test%
            \ifthenelse{%
                \equal{\jb@@fullname}{\@empty}%
                \and
                \equal{\jb@@author}{\@empty}%
            }{%
                \let\jbhowsepbeforetitle\@empty
            }{}%
            \jbonlyforcitations%
            \jb@cite@title@for@type@hook%
            \jb@cite@full@first@fortype@hook%
            \jb@cite@title@for@work@hook%
            \jb@start@page@for@type@hook%
            \jb@make@superscript@edition%
            \@ifundefined{jb@fm@\@citeb}{}{%
              \ifthenelse{\equal{\jb@@mult@switch}{0}}{%
                \@ifundefined{jb@fmmess@\@citeb}{% only one message per entry
                \global\@namedef{jb@fmmess@\@citeb}{}%
                \jb@package@warning{\jb@pkg@name}{%
                  Multiple use of `et. al.' for the author(s)\MessageBreak
                  of `#3' \MessageBreak
                  detected, printing the title to\MessageBreak
                  avoid ambiguity}}{}}{\relax}%
                \jb@do@if@multiple@bibetal% the things to do if true
            }%
            \ifjb@babel
                \ifthenelse{%
                    \equal{\jb@@language}{\bbl@main@language}%
                }{}{%
                    \ifthenelse{%
                        \equal{\jb@@language}{\@empty}%
                    }{% if no language is given, use the main language
                        \expandafter\jbselectlanguage%
                        \expandafter{\bbl@main@language}%
                    }{% if a language is given, use it
                        \language=\csname l@\jb@@language\endcsname\relax%
                    }%
                }%
            \fi
            \jb@checktitlefields
            \@ifundefined{jb@morethanonecite}{\jb@makeibidem}{\relax}%
            \jb@makeidem
            \jb@firstcitefull
            \jb@checked@etal
            \jb@makeagainfullcite%
            \jb@relaxforemptyauthor
            \jb@warningfootciteusage
            \jb@maketitlewishestrue
            \jb@cite@no@title@for@type@hook%
            \ifjb@debug
            \textcolor[named]{Dandelion}{%
              \ifjb@debug@br[\fi\jb@makecheckedcite\ifjb@debug@br]\fi}%
            \else
              \jb@makecheckedcite%
            \fi
            \OpCit%
            \ifjb@lookat
             \ifjb@firstcite@full
              \ifjb@allow@lookat@for@fullcite
               \ifjb@all@full\else
                \ifthenelse{%
                    \equal{\@nameuse{look@\@citeb}}{firsttime}%
                }{%
                    \relax
                }{%
                    \jb@lookat@fortype@hook
                    \ifthenelse{\equal{\jb@@lookat@for@type@switch}{1}}{%
                            \unskip\lookatprefix%
                            \ifjb@allow@hyper@cite\hyper@jblinkend\fi
                          \endgroup
                            \ifjb@vario
                               \vref{look@\@citeb:\jb@reset@look@label@for}%
                            \else
                               \ref{look@\@citeb:\jb@reset@look@label@for}%
                            \fi
                          \begingroup
                            \ifjb@allow@hyper@cite\hyper@jblinkstart{\@citeb}\fi
                                \lookatsuffix%
                                \jb@extract%
                    }{}%
                }%
               \fi % allfull end
              \fi % allow@lookat@for@fullcite end
             \fi % jb@firstcite@full end
            \fi % jb@lookat end
            \jb@checkperiod{#2}%
            \jb@extract@starting@page{\jb@@pages}%
            \jb@makecheckedpages
            \ifjb@allow@hyper@cite\hyper@jblinkend\fi
          \endgroup
          \ifx\relax#1\relax\ifx\relax#2\relax
              \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{EMPTY}%
            \else
              \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{\jbprformat{#2}}%
            \fi
          \else
             \ifx\relax#2\relax
               \ifjb@old@order
                  \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{\jbprformat{#1}}%
               \else
                  \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{EMPTY}%
               \fi
             \else
               \ifjb@old@order
                  \gdef\jb@@lastannotatorcite{#2}\gdef\jb@@lastpagecite{\jbprformat{#1}}%
                \else
                  \gdef\jb@@lastannotatorcite{#1}\gdef\jb@@lastpagecite{\jbprformat{#2}}%
                \fi
             \fi
          \fi
          \ifjbweareinbib\else\gdef\jb@@lastauthorcite{#3}\fi
          \global\let\jb@morethanonecite\@undefined
          \let\ibidem\@undefined
          \ifjb@no@nested@crossrefs
            \global\let\jbcrossrefchecked\origcrossref
          \fi
          \ifjb@fn
            \let\jb@close\@empty
            \let\jb@open\@empty
          \fi
          \stepcounter{citefull}%
          \stepcounter{opcit}%
          \jb@allow@adding@of@pagerangetrue
       }%
     }%
     \global\jb@fullcite@againfalse
     \jb@noauthorforcitetitlefalse
  }{}%
  \ifjb@fn\else\jb@fnfalse\fi
  \jb@ssed@recent@kernedfalse
  \@restore@auxhandle
}%
\AtBeginDocument{%
  \let\citetitle\jbcitetitle
  \let\fullcite\jbfullcite
  \let\footfullcite\jbfootfullcite
  \let\footcite\jbfootcite
  \let\footcitetitle\jbfootcitetitle
}%
\def\jurabibsetup{\setkeys{jb}}
\let\jb@origExecuteOptions\ExecuteOptions
\let\ExecuteOptions\jurabibsetup
\def\ProcessOptionsWithKV#1{%
  \let\@tempc\relax
  \let\KVo@tempa\@empty
  \@for\CurrentOption:=\@classoptionslist\do{%
    \@ifundefined{KV@#1@\CurrentOption}%
    {}%
    {%
      \edef\KVo@tempa{\KVo@tempa,\CurrentOption,}%
      \@expandtwoargs\@removeelement\CurrentOption
         \@unusedoptionlist\@unusedoptionlist
    }%
  }%
  \edef\KVo@tempa{%
    \noexpand\setkeys{#1}{%
      \KVo@tempa\@ptionlist{\@currname.\@currext}%
    }%
  }%
  \KVo@tempa
  \AtEndOfPackage{\let\@unprocessedoptions\relax}%
  \let\CurrentOption\@empty
}
\ProcessOptionsWithKV{jb}%
\InputIfFileExists{\jb@own@config@file}{%
    \jb@typeout{Package jurabib Info: *** Local config file `\jb@own@config@file' used ***^^J}}{%
       \InputIfFileExists{\jb@config@file}{%
       \jb@typeout{Package jurabib Info: *** Local config file `\jb@config@file' used ***^^J}}{}%
}%
\ProcessOptionsWithKV{jb}%
\let\ExecuteOptions\jb@origExecuteOptions
\endinput
%%
%% End of file `jurabib.sty'.
