%%
%% ---------------------------------------------------------------
%% css.bbx --- A citation style of journal of management world in china
%% modified from gb7714-2015
%% Maintained by huzhenzhen
%% E-mail: hzzmail@163.com
%% Released under the LaTeX Project Public License v1.3c or later
%% history
%% 2019/03/28 v1.0
%% 2022/02/22 v1.0a
%% ---------------------------------------------------------------
%%
%%������������������������������������biblatex���������������������
%%���������������������������������������������cite���textcite
\ProvidesFile{chinese-jmw.bbx}[2023/04/24 v1.0a a biblatex bibliography style for JMW]


%==================================================
%������gb������
%==================================================
\RequireBibliographyStyle{gb7714-2015}


%
%   ������������������������������������������������������
%   20220222,v1.0a,hzz
\DeclareBibliographyOption{gbpunctcn}[true]{%biblatex���������
  \ifstrequal{#1}{false}{\execgbpuncten}{}}

\newtoggle{bbx:gbvolnum}
\DeclareBibliographyOption{gbvolnum}[false]{%
    \settoggle{bbx:gbvolnum}{#1}}
    \ExecuteBibliographyOptions{gbvolnum}

\newbibmacro*{bbx:ifmergeddate}{\@secondoftwo}

\newbibmacro*{date+extradate}{}

% merge date with date label
\def\bbx@opt@mergedate@true{%
  \renewbibmacro*{date+extradate}{%
    \iffieldundef{labelyear}
      {}
      {\printtext{%
         \iflabeldateisdate
           {\printdateextra}
           {\printlabeldateextra}}}}%
  \renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}%
  \renewbibmacro*{issue+date}{%������������
    \iffieldundef{issue}
      {\usebibmacro{date}}%
      {\iftoggle{bbx:gbstrict}{}{\printfield{issue}%
       \setunit*{\addspace}}%
       \usebibmacro{date}}}%
}


\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\printnames{author}%
        \iffieldundef{authortype}
          {\setunit{\printdelim{nameyeardelim}}}
          {\setunit{\printdelim{authortypedelim}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
        \setunit{\printdelim{nameyeardelim}}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameyeardelim}}}%
\iffieldequalstr{userd}{chinese}{}{\usebibmacro{date+extradate}\clearfield{year}}%
}


%==================================================
%������������
%==================================================
\ExecuteBibliographyOptions{
    gbnamefmt=familyahead,
    gbbiblabel=parens,
    gbtype=false,
    gbpub=false,
    doi=false,
    url=false,
    gbfieldtype=true,
    dateabbrev=false,
    maxbibnames=99,
    mergedate=true,
    gbfootbibfmt =true,
    %datezeros=false,
    }

%==================================================
%���������������������������������������
%==================================================
\def\gbpunctdot{���}%
\def\gbpunctmark{���}%
\def\gbpunctcomma{���}%
\def\gbpunctcommalanen{���}%\addcomma\addspace
\def\gbpunctcolon{���}%
\def\gbpunctcolonlanen{\addcolon\addspace}%
\def\gbpunctsemicolon{���}%
\def\gbpunctttl{���}%
\def\gbpunctttr{���}
\def\gbpunctprl{���}%
\def\gbpunctprr{���}


\def\execgbpuncten{%
\def\gbpunctdot{\adddot}%
\def\gbpunctmark{\addcomma\addspace}%
\def\gbpunctcomma{\addcomma\addspace}%
\def\gbpunctcommalanen{\addcomma\addspace}%
\def\gbpunctcolon{\addcolon\addspace}%
\def\gbpunctcolonlanen{\addcolon\addspace}%
\def\gbpunctsemicolon{\addsemicolon\addspace}%
\def\gbpunctttl{���}%
\def\gbpunctttr{���}%
}

\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{\textasciitilde}}%���������������������������������������������

%==================================================
%���������������������������������������������and������������������
%==================================================
\DefineBibliographyStrings{english}{
    and         = { and},%and������������������finalnamedelim������������������������������������20191009
    andcn       = {\gbpunctmark\unspace},%\gbpunctmark
    mathesiscn={������������������},
    phdthesiscn={������������������},
    bytranslator= {trans\adddot\ \lbx@sfromlang\ by},
    in={in\space},
}




%==================================================
%������������������������������������������
%==================================================
%\DeclareFieldFormat{titlecase}{\iffieldequalstr{userd}{chinese}{#1}{\capitalisewords{#1}}}
%\DeclareFieldFormat*{booktitle}{\gbpunctttl#1\gbpunctttr}
\DeclareFieldFormat*{title}{%
\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{\textit{#1}\isdot}}
\DeclareFieldFormat[book]{title}{%
\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{\textbf{\textit{#1}}\isdot}}
\DeclareFieldFormat[archive]{title}{%
\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{#1\isdot}}
\DeclareFieldFormat[article,incollection,inbook,inproceedings,misc]{title}{%
\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{\mkbibquote{#1}\isdot}}
\DeclareFieldFormat*{journaltitle}{%
\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}%
{\iffieldequalstr{entrysubtype}{workpaper}{#1}%
{\textbf{\textit{#1}}}%
}}%
\DeclareFieldFormat{booktitle}{%
\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{\textbf{\textit{#1}}}}
\renewcommand*{\revsdnamepunct}{%
\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}
\DeclareDelimFormat{multinamedelim}{%
\iffieldequalstr{userd}{chinese}{\gbpunctmark}{\gbpunctcommalanen}}
\DeclareDelimFormat{finalnamedelim}{%
  %\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  %\addspace%
  \edef\userfieldabcde{userd}%
  \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}%
  \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}%
  \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}%
  \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}%
  \ifcase\value{gbcitelocalcase}%
    \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andincitecn}}{}%
    \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}%
    \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}%
    \iffieldequalstr{\userfieldabcde}{english}{\space\bibstring{andincite}\space}{}%
    \iffieldequalstr{\userfieldabcde}{french}{\bibstring{and}}{}%
    \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{and}}{}%
%\space%
  \or%
  \bibstring{andincitecn}\space%
  \or%
  \bibstring{andincite}\space%
  \fi}
\DeclareDelimFormat[bib,biblist]{finalnamedelim}{%
%  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \edef\userfieldabcde{userd}%
  \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}%
  \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}%
  \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}%
  \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}%
  \ifcase\value{gbbiblocalcase}%
    \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andcn}}{}%
    \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}%
    \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}%
    \iffieldequalstr{\userfieldabcde}{english}{\bibstring{and}}{}%
    \iffieldequalstr{\userfieldabcde}{french}{\bibstring{and}}{}%
    \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{and}}{}%
\space%
  \or%
\bibstring{andcn}\space%
  \or%
  \bibstring{and}\space%
  \fi}
\DeclareDelimFormat{nameyeardelim}{%
\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}
\DeclareDelimFormat[bib,biblist]{nameyeardelim}{%
\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}
\DeclareDelimFormat{bibpagespunct}{%
\iffieldequalstr{userd}{chinese}{\unspace\gbpunctcomma}{\unspace\gbpunctcommalanen}}
\DeclareFieldFormat{pages}{%%���������������������pp.���������
\iffieldequalstr{userd}{chinese}{%
\printtext{\bibstring{serialcn} #1\addthinspace ���}}%
{\mkpageprefix[bookpagination]{#1}}}

%
%   ���������������������������������������������������������������������
%
\renewbibmacro*{note+pages}{%���������standard.bbx
\iffieldequalstr{userd}{chinese}{}%
        {\iffieldundef{pages}{}{%
              \setunit{\bibpagespunct}%
              \printfield{pages}}}%
}


%
%   ���������������������������chapter+pages������
%
\renewbibmacro*{chapter+pages}{%
\iffieldundef{postnote}{\iffieldundef{pages}{}{%
                  \setunit{\bibpagespunct}%
                  \printfield{pages}}}{}%
}


\renewcommand*{\newunitpunct}{%
\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}%
}
\renewcommand*{\finentrypunct}{%
\printdelim{finalpunct}}
%���������������������������������������������
\DeclareDelimFormat{finalpunct}{\iffieldequalstr{userd}{chinese}{\gbpunctdot}{\adddot}}
%������������usedriver���biblatex���������\finenty���������\blx@finentry@usedrv
%���\blx@finentry@usedrv������������������������������������userdriver������������������������
%������������������������������������������\blx@imc@finentry������������������������������
\AtUsedriver{%
  \let\finentry\blx@imc@finentry%\blx@finentry@usedrv
}


%���������������������������������������������
\renewcommand{\publocpunct}{%
\iffieldequalstr{userd}{chinese}{\gbpunctcolon}{\addcolon\addspace}%
}
%���������������������������������������
\renewcommand{\pubdatadelim}{%
\iffieldequalstr{userd}{chinese}%
    {\iffieldundef{year}{}{\setunit*{\gbpunctcomma}}}{\setunit*{\addcomma\space}}}
\renewcommand{\locnopubdelim}{%
\iffieldequalstr{userd}{chinese}
    {\iffieldundef{year}{}{\setunit*{\gbpunctcomma}}}{\setunit*{\addcomma\space}}}

%������������������������������������
\DeclareDelimFormat{editortypedelim}{\iffieldequalstr{userd}{chinese}{}{\addcomma\space}}

%���������������������
\renewcommand*{\subtitlepunct}{%
\iffieldequalstr{userd}{chinese}{}{\addcolon\addspace}}

%==================================================
%������������������������������
%==================================================

%���������������������������������
\renewbibmacro*{editor+others}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}%
    {}%
    }

\renewbibmacro*{editor+othersstrg}{%
  \iffieldundef{editortype}
    {\ifboolexpr{
       test {\ifnumgreater{\value{editor}}{1}}
       or
       test {\ifandothers{editor}}
     }
       {\def\abx@tempa{editors}}
       {\def\abx@tempa{editor}}}
    {\ifboolexpr{
       test {\ifnumgreater{\value{editor}}{1}}
       or
       test {\ifandothers{editor}}
     }
       {\edef\abx@tempa{\thefield{editortype}s}}
       {\edef\abx@tempa{\thefield{editortype}}}}%
  \let\abx@tempb=\empty
  \ifnamesequal{editor}{translator}
    {\appto\abx@tempa{tr}%
     \appto\abx@tempb{\clearname{translator}}}
    {}%
  \ifnamesequal{editor}{commentator}
    {\appto\abx@tempa{co}%
     \appto\abx@tempb{\clearname{commentator}}}
    {\ifnamesequal{editor}{annotator}
       {\appto\abx@tempa{an}%
        \appto\abx@tempb{\clearname{annotator}}}
       {}}%
  \ifnamesequal{editor}{introduction}
    {\appto\abx@tempa{in}%
     \appto\abx@tempb{\clearname{introduction}}}
    {\ifnamesequal{editor}{foreword}
       {\appto\abx@tempa{fo}%
        \appto\abx@tempb{\clearname{foreword}}}
       {\ifnamesequal{editor}{afterword}
          {\appto\abx@tempa{af}%
           \appto\abx@tempb{\clearname{afterword}}}
          {}}}%
  \ifbibxstring{\abx@tempa}
    {\printtext[editortype]{%
    \iffieldequalstr{userd}{chinese}{\bibstring{\abx@tempa cn}}{\bibstring{\abx@tempa}}%
    }\abx@tempb}
    {\usebibmacro{editorstrg}}}

%���������������������
\renewbibmacro*{name:andothers}{\bibauthorfont%
    \ifboolexpr{test {\ifnumequal{\value{listcount}}{\value{liststop}}}
            and test \ifmorenames}
    {\ifnumgreater{\value{liststop}}{1}%���������������������������������������������1���������������������������������1���������������������������������������������\finalandcomma
        {}{}%\finalandcomma������������������������������������������������������������������������������������������
    \printdelim{andothersdelim}\printdelim{strandothersdelim}}%
    {}%
}



%������������
\renewbibmacro*{date}{%
    \iffieldequalstr{userd}{chinese}{%
        \ifboolexpr{test {\ifentrytype{article}} or test {\ifentrytype{inproceedings}}
                or test {\ifentrytype{archive}} or test {\ifentrytype{online}}}
            {\printtext{\blx@gbdatecn{}{}}}%
            {\printdate\iffieldundef{year}{}{���}}%
        }{\ifentrytype{archive}{\printtext{\blx@gbdateen{}{}}}{\printdate}}%
}

\newrobustcmd*{\blx@gbdatecn}[3][]{%
  \dateeraprintpre{#2#3year}%
  \iffieldundef{#2#3year}{}{\blx@imc@forcezerosy{\thefield{#2#3year}���}}\ifblank{#1}{}{\printfield{#1}}%
    \iffieldundef{#2#3month}{}{{\thefield{#2#3month}}���}%
     \iffieldundef{#2#3day}{}{{\thefield{#2#3day}}���}}

\newrobustcmd*{\blx@gbdateen}[3][]{%
\mkbibdateen{#2#3year}{#2#3month}{#2#3day}%
}

\newrobustcmd*{\mkbibdateen}[3]{%
  \iffieldundef{#2}
    {}
    {\mkbibmonth{\thefield{#2}}%
     \iffieldundef{#1}{}{\space}}%
  \iffieldundef{#3}
    {}
    {{\thefield{#3}}%
     \iffieldundef{#2}{}{\addcomma\space}}%
  \iffieldbibstring{#1}
    {\bibstring{\thefield{#1}}}
    {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}


\renewbibmacro*{newsdate}{%%
\iffieldequalstr{userd}{chinese}
    {\printtext{\blx@gbdatecn{}{}}}%
    {\printtext{\blx@gbdate{}{}}}%%
}


%
\renewbibmacro*{modifydate}{%������������������������������������������������������������������������������������������������������������������������
\iffieldequalstr{userd}{chinese}
    {%
    \printtext{\blx@gbdatecn{}{}}%
    }%
    {\ifboolexpr{%
    test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{eventday}}%
    }%
    {}%������������������������������day������
    {\iffieldundef{year}{%
            \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{\gbleftparen}\printeventdate\printtext{\gbrightparen}}}%
            {\printtext{\gbleftparen}\printenddate\printtext{\gbrightparen}}%
    }{\iffieldequalstr{year}{}{%������year������������������
        }{\printtext{\gbleftparen}\blx@gbdate{}{}\printtext{\gbrightparen}}%
     }}%
}}%


\renewbibmacro*{url+urldate}{%
    \newunit\usebibmacro{url}\newunit%
    \printtext{\blx@gbdatecn{}{url}}%
}


\DeclareFieldFormat{type}%
{\iffieldequalstr{userd}{chinese}%
    {\ifbibxstring{#1cn}{\bibxstring{#1cn}}{#1}}%
    {\ifbibstring{#1}{\bibstring{#1}}{#1}}%
}


\renewbibmacro*{in:}{%
\iftoggle{bbx:gbpunctin}{\iffieldequalstr{userd}{chinese}%
                             {\gbpunctcomma}%
                             {\newunit\printtext{\bibstring{in}}}}%\addthinspace
                         {\setunit{\adddot\addspace}%
                             \iffieldequalstr{userd}{chinese}%
                             {\gbpunctcomma}%
                             {\printtext{\bibstring{in}}}%
                         }}%\newunit\newblock\intitlepunct


%
%   ������number���volume���������
%
\newcounter{numberwithoutzero}
\DeclareFieldFormat[newspaper,article,periodical]{number}%
{\iffieldequalstr{userd}{chinese}{%
        \iffieldequalstr{entrysubtype}{news}{%
            \iffieldint{number}%
                {\printtext{\gbpunctcomma\bibstring{serialcn} #1 ���}}%
                {\printtext{\gbpunctcomma #1}}%
        }%
        {\iffieldint{number}{\setcounter{numberwithoutzero}{#1}%
        \printtext{\bibstring{serialcn}\addthinspace\arabic{numberwithoutzero} ���}}%
        {\printtext{\bibstring{serialcn}\addthinspace #1 ���}}%
        }}%
        {\setcounter{numberwithoutzero}{#1}\printtext{\bibstring{number}}~\arabic{numberwithoutzero}}%
}

\DeclareFieldFormat[book,inbook,incollection,misc]{number}%
{\iffieldequalstr{userd}{chinese}
    {\iffieldint{number}%
        {%
        \bibstring{serialcn}#1\bibstring{numbercn}%
        }{#1}%
    }%
    {\bibstring{number}~#1}%
}

\DeclareFieldFormat[article,periodical,newspaper]{volume}%
{\iffieldequalstr{userd}{chinese}{%
    \iffieldint{volume}%
    {\bibstring{serialcn}#1\bibstring{volumecn}}%
    {#1}%
    }%
    {\bibstring{volume}~#1}%
}

\DeclareFieldFormat[book,inbook,incollection]{volume}%
{\iffieldequalstr{userd}{chinese}{\iffieldint{volume}%
        {\iffieldequalstr{entrysubtype}{classic}{\bibstring{volumecn}#1}%
        {\bibstring{serialcn}#1\bibstring{volumecn}}%
        }{#1}%
    }%
    {\bibstring{volume}~#1}%
}

\DeclareListFormat[article,newspaper]{location}{%
\iffieldequalstr{userd}{chinese}{\gbpunctprl#1\gbpunctprr}{#1}%
}

\DeclareListFormat[article]{series}{%
\iffieldequalstr{userd}{chinese}{\gbpunctprl#1\gbpunctprr}{#1}%
}

%
%   ������������������������
%
%   v1.0k,20180425,������������������������������hzz
%   v1.1j,20220527,������������������������������������������
\renewbibmacro*{journal+issuetitle}{%
    \bibpubfont%
  \usebibmacro{journal}\newunit%
  \iflistundef{location}{}{\printlist{location}}%
  \iffieldundef{series}%
    {}%
    {\printfield{series}}%
    \iffieldundef{volume}%
      {\usebibmacro{issue+date}%
      \usebibmacro{volume+number+eid}}%
      {\usebibmacro{volume+number+eid}%
      \iffieldundef{year}{}{\newunit}%
      \usebibmacro{issue+date}}%
}


%���������������������������
\renewbibmacro*{journal}{%
  \ifboolexpr{
    test {\iffieldundef{journaltitle}}
    and
    test {\iffieldundef{journalsubtitle}}
  }
    {}
    {\printtext[journaltitle]{%
       \printfield[titlecase]{journaltitle}%
       \printfield[titlecase]{journalsubtitle}}%
     }%
  \iffieldundef{journaltitleaddon}
    {}
    {\printfield{journaltitleaddon}}}




%
%   ������������������������������
%
\renewbibmacro*{volume+number+eid}{%���������standard.bbx
\iffieldequalstr{userd}{chinese}%
  {\iffieldundef{volume}{}{\printfield{volume}}%
    \iffieldundef{number}{}{\printfield{number}}}%������������������������
  {\newunit%
  \iftoggle{bbx:gbvolnum}%
      {\usebibmacro{gb+volume+number}}%
      {\iffieldundef{volume}{}{\printfield{volume}}%
       \newunit\iffieldundef{number}{}{\printfield{number}}}%
  \printfield{eid}}%
}


\DeclareFieldFormat{plainvolume}{#1}%


\newbibmacro*{gb+volume+number}
{%
\ifboolexpr{
   not test {\iffieldundef{volume}} and  not test {\iffieldundef{number}}
    }
    {\printfield[plainvolume]{volume}\printfield[parens]{number}}
    {%
        \iffieldundef{volume}{}{\printfield{volume}}%
        \iffieldundef{number}{}{\printfield{number}}%
    }%
}


%
%   ������������������������
%
\renewbibmacro*{title+issuetitle}{%���������standard.BBX
  \usebibmacro{periodical}%
  \iffieldequalstr{userd}{chinese}{\setunit*{\gbpunctcomma}}{\setunit*{\adddot\addspace}}%
  \iffieldundef{series}%
    {}%
    {\newunit%
     \printfield{series}%
     \setunit{\addspace}}%
    \usebibmacro{periodical+issue}%���issue������������������������������
    \usebibmacro{issue+date}%
    \usebibmacro{issue}%
    \usebibmacro{volume+number+eid}
}




%
%   ������title���������
%
%   20180425���v1.0k���������������������������������������Hu Zhenzhen
%   ������������:������������������������������������������������������biblatex.def������
%   ������toggle���������������������������������
\renewbibmacro*{title}{%
  \ifboolexpr{%
    test{\iffieldundef{title}}%
    and
    test{\iffieldundef{subtitle}}%
  }%
    {}%
    {\setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcolon}{\gbpunctcommalanen}}%
    \ifboolexpr{not test {\iffieldundef{origyear}} and test{\iffieldequalstr{entrysubtype}{classic}}}%
    {\printorigdate}{}%
    \printtext[title]{\bibtitlefont%������������������������%������������������
       \printfield[titlecase]{title}%
       \ifboolexpr{test {\iffieldundef{subtitle}}}%���������������������������������������������������������������������������
       {}{\setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}%
       \iffieldundef{titleaddon}{}%������������titleaddon���������������������������������������
        {\setunit{\subtitlepunct}\printfield{titleaddon}}}%
     \ifboolexpr{test{\ifentrytype{book}} and (not test{\iffieldundef{volume}})}%������������book������������volume
            {\printfield{volume}}{}%%
    }%
}


%=====================================================================
%������������������
%=====================================================================

\DeclareDelimFormat{authotitledelim}
{%
\iffieldequalstr{userd}{chinese}{\gbpunctcolon}{\addperiod\space}%
}

\renewbibmacro*{maintitle+booktitle}{%
  \iffieldundef{maintitle}
    {}
    {\usebibmacro{maintitle}%
     \newunit\newblock
     \iffieldundef{volume}
       {}
       {\printfield{volume}%
        \printfield{part}%
        \setunit{\addcolon\space}}}%
  \usebibmacro{booktitle}%
}


\newbibmacro*{inbook:volume+number}{%
    \iffieldundef{volume}{}{\printfield{volume}}%
    \iffieldundef{number}{}{\printfield{number}}%
}


\renewbibmacro*{thesis:institution+location+date}{\bibpubfont%���������institution���������������
{\printlist{location}%%������������������������\usebibmacro{date}���month���day������������
  \iflistundef{institution}
    {\setunit*{\addcomma\space}}
    {\setunit*{\publocpunct}}%
  \printlist{institution}%
  \iftoggle{bbx:gbfieldtype}{%
  \printfield{type}%
  \setunit*{\addspace}}{}%
  \pubdatadelim%
  \usebibmacro{date}%
  %\newunit
  }}


%
%   ������inbook:parent������������crossref���������������������
%   ������{crosscite}������
%   20210216,v1.0w,hzz
\newbibmacro*{inbook:parent}{%
\usebibmacro{bybookauthor}%
\ifnameundef{bookauthor}{%
  \ifnameundef{editor}{}{\printdelim{authotitledelim}}%
  }{\printdelim{authotitledelim}}%
{\iffieldundef{series}{}{\usebibmacro{series+number}\setunit{\addcolon\addspace}}}%���������������������series������������������
  \usebibmacro{maintitle+booktitle}%
  \usebibmacro{inbook:volume+number}%
  \newunit\newblock%
  {\printfield{edition}}%
  \newunit
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
}


\DeclareBibliographyDriver{book}{%���������standard.bbx������
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%������������������������������������������������������
\usebibmacro{maintitle+title}%
\iftoggle{bbx:gbstrict}{}{%
\newunit
\printlist{language}%
\newunit\newblock%
\usebibmacro{byauthor}%
\newunit\newblock}%
\usebibmacro{byeditor+others}%
\newunit%
{\printfield{edition}}%
\newunit\newblock%%
\iftoggle{bbx:gbstrict}{}{%
\iffieldundef{maintitle}%
{\printfield{volume}%
\printfield{part}}%
{}%
\newunit%
\printfield{volumes}%
\newunit\newblock%
\usebibmacro{series+number}}%
\newunit\newblock%
%\printfield{note}%
%\newunit\newblock%
\usebibmacro{publisher+location+date}%
%\newunit\newblock %������������������
\usebibmacro{chapter+pages}%
%  \iffieldundef{url}{}{%������������������������������
%  \usebibmacro{modifydate}}%������������������������������������
\usebibmacro{doi+eprint+url}%������������������������������������gbt2015���url������������������������������
  \newunit\newblock%
  \printfield{pagetotal}%
  \newunit\newblock%
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  %\usebibmacro{doi+eprint+url}%
  %\newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{annotation}\usebibmacro{finentry}}


\DeclareBibliographyDriver{thesis}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%������������������������������������������������������
  \usebibmacro{title}%
  \iftoggle{bbx:gbstrict}{}{%
  \newunit%
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%���������������������
  \newunit\newblock
  {\printfield{number}}%
  \newunit\newblock
  \printfield{version}%
  \newunit
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{thesis:institution+location+date}%
  %\newunit\newblock
  \usebibmacro{chapter+pages}%
  \iffieldundef{url}{}{%���������������������������������������������������
  \usebibmacro{modifydate}}%������������������������������������������
  \usebibmacro{doi+eprint+url}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isrn}}
    {}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{annotation}\usebibmacro{finentry}}


\DeclareBibliographyDriver{manual}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%������������������������������������������������������
  \usebibmacro{title}%
  \iftoggle{bbx:gbstrict}{}{%
  \newunit%
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%���������������������
  \newunit\newblock
  \iftoggle{bbx:gbfieldtype}{%
  \printfield{type}%
  \setunit*{\addspace}}{}%
  {\printfield{number}}%
  \newunit\newblock
  \printfield{version}%
  \newunit
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{institution+location+date}%
  %\newunit\newblock
  \usebibmacro{chapter+pages}%
  \iffieldundef{url}{}{%���������������������������������������������������
  \usebibmacro{modifydate}}%������������������������������������������
  \usebibmacro{doi+eprint+url}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isrn}}
    {}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{annotation}\usebibmacro{finentry}}


\DeclareBibliographyDriver{misc}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%������������������������������������������������������
  \usebibmacro{title}%
\iftoggle{bbx:gbstrict}{}{%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}}%
  \newunit\newblock
  \printfield{howpublished}%
  \newunit\newblock
  \printfield{type}%
  \newunit
  \printfield{version}%
  \newunit
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{institution+location+date}%
  \newunit%
  \printfield{number}%
  %\usebibmacro{organization+location+date}%
  %\newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{annotation}\usebibmacro{finentry}}