20 基于gb7714-2015在使用biblatex时如何交换“xx学位论文”与“xx大学”的顺序?

发布于 2025-04-02 20:18:38

如题,希望修改:

image.png

『xx学位论文』与『xx大学』的顺序,MWE如下:

\documentclass{ctexart}
\begin{filecontents*}[overwrite]{references.bib}
@mastersthesis{1025254551.nh,
  author = {周清源},
  title = {两性离子基聚合物凝胶电解质及其宽温域水系钠离子混合电容器},
  school = {华中科技大学},
  year = {2024}
}

@phdthesis{1024398655.nh,
  author = {陈伯超},
  title = {盐模板法可控构筑纳米锑/三维多孔碳复合负极材料及其储钠/钾机制研究},
  school = {天津大学},
  year = {2022}
}

@phdthesis{1023843361.nh,
  author = {杜祯},
  title = {电场强化微滤膜污染控制及微量有机物去除的机理研究},
  school = {天津大学},
  year = {2021}
}
\end{filecontents*}
\usepackage{hyperref}
\usepackage[style=gb7714-2015,
            gbnamefmt=lowercase,
            gbmedium=false,
            doi=false,
            gbpunctin=false,
            gbfieldtype=true,
            gbalign=center]{biblatex}
\addbibresource{references.bib}
\begin{document}
  good \cite{1024398655.nh,1023843361.nh,1025254551.nh} application prospects.
  \printbibliography[heading=bibliography,title=参考文献]
\end{document}

查看更多

关注者
0
被浏览
116
huzhen
huzhen biblatex 超级专家 1天前
这家伙很懒,什么也没写!

要重新定义一下thesis的输出driver,比如:

\documentclass{ctexart}
\usepackage{geometry}
\usepackage[style=gb7714-2015,gbnamefmt=lowercase,
            gbmedium=false,
            doi=false,
            gbpunctin=false,
            gbfieldtype=true,
            gbalign=center]{biblatex}

\makeatletter  
\newbibmacro*{institution+location+type+date}{\bibpubfont%当没有institution时不处理。
{\printlist{location}%%加了一个编组避免\usebibmacro{date}把month和day信息去掉
  \iflistundef{institution}
    {\setunit*{\addcomma\space}}
    {\setunit*{\publocpunct}}%
  \printlist{institution}%
  \newunit%
  \iftoggle{bbx:gbfieldtype}{%
  \printfield{type}%
  \setunit*{\addspace}}{}%
  \pubdatadelim%
  \usebibmacro{date}%
  }}
    
\DeclareBibliographyDriver{thesis}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{institution+location+type+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \iffieldundef{url}{}{%当没有网址时也不输出修改或更新日期
  \usebibmacro{modifydate}}%修改或更新日期为带括号的时间
  \usebibmacro{doi+eprint+url}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{annotation}\usebibmacro{finentry}}
\makeatother

\begin{filecontents}[force]{\jobname.bib}
@phdthesis{张志祥rawtype,
  author       = {张志祥},
  title        = {间断动力系统的随机扰动及其在守恒律方程中的应用},
  location     = {北京},
  institution  = {北京大学},
  year         = {1998}
}

@mastersthesis{徐秀英rawtype,
  author       = {徐秀英},
  title        = {家庭教育对低年级小学生语文学习习惯的影响及对策研究},
  location     = {武汉},
  institution  = {华中师范大学},
  year         = {2013}
}

@mastersthesis{Aldemitarawtype,
  author       = {Rhodora Romero Aldemita},
  title        = {Genetic Engineering of rice: Agrobacterium tumefaciens-mediated transformation of rice and evaluation of a corn pollen-specific promoter using the gus A gene in transgenic rice},
  location     = {West Lafyatte},
  publisher    = {Purdue University},
  year         = {1998}
}
\end{filecontents}


\addbibresource{\jobname.bib}


\begin{document}

\cite{张志祥rawtype,徐秀英rawtype,Aldemitarawtype}

\printbibliography

\end{document} 

结果为:
image.png

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览