\ProvidesFile{ustcthesis-numeric.bbx}[2021/01/19 v1.0 USTCThesis biblatex
  bibliography style]

\RequireBibliographyStyle{gb7714-2025}

\ExecuteBibliographyOptions{
  gbalign   = left,
  gbnamefmt = lowercase,
  gbpub     = false,
  url       = false,
  doi       = false,
}

\setlength\biblabelsep{0pt}

% 顺序编码制悬挂缩进 2.5 字符
\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
        \printfield{labelprefix}%
        \printfield{labelnumber}}}
     % {\setlength{\labelwidth}{\labelnumberwidth}%
     %  \setlength{\leftmargin}{\labelwidth}%
     {\setlength{\labelwidth}{2.5em}%
      \setlength{\leftmargin}{2.5em}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      % 参考文献表的编号居左。
      % \renewcommand*{\makelabel}[1]{\hss##1}}
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}


\DeclareFieldFormat{sentencecase}{%
  \iftoggle{bbx:titlelink}{%
    \iffieldundef{url}{#1}{%
      \href{\thefield{url}}{\MakeSentenceCase*{#1}}%
    }%
  }{%
    \MakeSentenceCase{#1}%
  }%
}

%
%   重设title的输出
%
%   20180425，v1.0k，为标题增加字体控制命令，Hu Zhenzhen
%   原理方法:将文献类型标识符输出出去，原输出来自biblatex.def文件
%   利用toggle做标识符是否输出的判断
\renewbibmacro*{title}{%
  \ifboolexpr{%
    test{\iffieldundef{title}}%
    and
    test{\iffieldundef{subtitle}}%
  }%
    {}%
    {\printtext[title]{\bibtitlefont%增加字体控制命令
       \printfield[sentencecase]{title}%
       \ifboolexpr{test {\iffieldundef{subtitle}}}%这里增加了对子标题的判断，解决不判断多一个点的问题
       {}{\setunit{\subtitlepunct}%
       \printfield[sentencecase]{subtitle}}%
       \iffieldundef{titleaddon}{}%判断一下titleaddon，否则直接加可能多一个空格
        {\setunit{\subtitlepunct}\printfield{titleaddon}}%
        \iftoggle{bbx:gbtype}{%
         \iffieldundef{entrysubtype}{\printfield[gbtypeflag]{usera}}%在标题后直接给出文献标识字母，判断一下，是否是报纸和标准
        {\iffieldequalstr{entrysubtype}{standard}{\printfield[gbtypeflags]{usera}}%判断是否为标准
                                         {\iffieldequalstr{entrysubtype}{news}{\printfield[gbtypeflagn]{usera}}%判断是否为报纸
                                                                      {\printfield[gbtypeflag]{usera}}}%其它
        }}{}%
     %\iffieldundef{booktitle}{\newunit}{}%当title是析出时，不要标点
     %\newunit
}%
}}

\renewbibmacro*{maintitle}{%
  \ifboolexpr{
    test {\iffieldundef{maintitle}}
    and
    test {\iffieldundef{mainsubtitle}}
  }
    {}
    {\printtext[maintitle]{%
       % 在 maintitle+title 使用 sentence case，但是在 maintitle+booktitle 使用 title case
       \printfield[titlecase]{maintitle}%
       \iffieldundef{booktitle}{%
         \printfield[sentencecase]{maintitle}%
       }{%
         \printfield[titlecase]{maintitle}%
       }%
       \setunit{\subtitlepunct}%
       % \printfield[titlecase]{mainsubtitle}%
       \iffieldundef{booktitle}{%
         \printfield[sentencecase]{maintitle}%
       }{%
         \printfield[titlecase]{maintitle}%
       }%
      }%
     \newunit}%
  \printfield{maintitleaddon}}

% 斜线默认使用原字体，不再使用等宽字体
% <https://github.com/tuna/thuthesis/discussions/1018>
\def\SlashFont{}
