![通过 biblatex/biber 中的特殊标记表明共同第一作者](https://linux22.com/image/388638/%E9%80%9A%E8%BF%87%20biblatex%2Fbiber%20%E4%B8%AD%E7%9A%84%E7%89%B9%E6%AE%8A%E6%A0%87%E8%AE%B0%E8%A1%A8%E6%98%8E%E5%85%B1%E5%90%8C%E7%AC%AC%E4%B8%80%E4%BD%9C%E8%80%85.png)
我正在使用biblatex/biber
排版来排版我论文的参考书目。对于一个我是共同第一作者的特定参考文献,我的博士论文考官要求我使用适当的标记明确指出这一点,让读者清楚地了解这一事实。
假设我们有一个thesis.bib
包含相关条目的文件。
@article{Doe2018,
author = {Doe, John and Bloggs, Joe and Supervisor, Nice},
journal = {Journal of Pure Awesomeness},
month = {jun},
pages = {507--514},
publisher = {DodgyPublisher},
title = {{The next big breakthrough in science}},
volume = {17},
year = {2018}
}
在这种情况下,两者约翰·多伊和乔·布洛格斯被指定为共同第一作者。已发表文章的 PDF 和出版商的文章 HTML 登陆页面清楚地标明了这一点。内部审查员和导师(也是上述文章的合著者/最后一位作者)都知道两位作者的贡献是平等的,因此,没有人能在论文中享有全部荣誉。
所以问题是,在参考书目中,如何特别标记此条目,例如下划线两位第一作者的名字?在按照所使用的样式格式化的参考书目条目之后(除新引入的下划线外),应附加以下句子 -“带下划线的作者为共同第一作者,对本文贡献相同”。
鉴于我们正在使用高度灵活的组合,我们可以为此制定自定义参考书目命令biber/biblatex
吗?
这是一个最小的非工作示例。该\customcite
命令尚不存在,但表明了所需的内容。
\documentclass[a4paper]{book}
\usepackage[backend=biber, style=numeric-comp, sorting=none, citestyle=numeric-comp, maxbibnames=50, url=true, doi=true, eprint=false, backref=true, backrefstyle=three]{biblatex}
\usepackage{csquotes}
\addbibresource{thesis.bib}
\begin{document}
Blah blah \dots as seen in the research article published~\customcite{Doe2018}.
\printbibliography
\end{document}
答案1
您可以使用数据注释来实现这一点。请参阅 §3.6数据注释的这biblatex
。
注释jointfirst
可以附加到姓名列表中的每个姓名上。如果姓名有此注释,它将以粗体显示(在此示例中)。
\documentclass[a4paper]{article}
\usepackage[backend=biber, style=numeric-comp, sorting=none,
maxbibnames=50, eprint=false,
backref=true, backrefstyle=three]{biblatex}
\usepackage{csquotes}
\renewcommand*{\mkbibnamefamily}[1]{%
\ifitemannotation{jointfirst}
{\textbf{#1}}
{#1}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Doe2018,
author = {Doe, John and Bloggs, Joe and Supervisor, Nice},
author+an = {1=jointfirst;2=jointfirst},
title = {The next big breakthrough in science},
journal = {Journal of Pure Awesomeness},
volume = {17},
date = {2018-06},
pages = {507--514},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Blah blah \dots as seen in the research article published~\cite{Doe2018}.
Blah blah \dots as seen in the research article published~\cite{sigfridsson}.
\printbibliography
\end{document}
如果你想用粗体显示全名,你可以重新定义\mkbibnamecomplete
(3.13 版新增biblatex
,https://github.com/plk/biblatex/issues/853,如果您需要实现或廉价的解决方法,请参阅该问题的编辑历史)
\renewcommand*{\mkbibcompletename}[1]{%
\ifitemannotation{jointfirst}
{\textbf{#1}}
{#1}}
答案2
大部分内容都取自 @moewe 在此处发布的出色答案,为了完整性和供其他人将来参考,我想发布我提出的具体问题的完整解决方案(用下划线和粗体标出共同第一作者,并在印刷引文末尾附加适当的注释)。请注意,除了 @moewe 发布的内容外,信息性注释还通过包含一个指示排版其内容的addendum
字段来完成biber/biblatex
后引用已格式化。
这是完整的代码。
\documentclass[a4paper]{article}
\usepackage[backend=biber, style=numeric-comp]{biblatex}
\usepackage{csquotes}
\usepackage{xcolor} % <---- required for coloured highlighting of addendum text if desired.
\usepackage[normalem]{ulem} % <---- For underlining. Note that the [normalem] option is critical, otherwise the `emph` macro is redefined which messes up typeset bibliography
\setlength{\ULdepth}{4.0pt}
\renewcommand{\ULthickness}{0.75pt}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Doe2018,
author = {Doe, John W. and Bloggs, Joe and Supervisor, Nice J.},
author+an = {1=jointfirst;2=jointfirst},
title = {The next big breakthrough in science},
journal = {Journal of Pure Awesomeness},
volume = {17},
date = {2018-06},
pages = {507--514},
addendum = {\textcolor{brown}{\emph{The highlighted authors are joint first authors with equal contributions.}}} % <-- note the extra information in the addendum field
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\newcommand*{\mkbibnamecomplete}[1]{%
\ifitemannotation{jointfirst}
{\textbf{\uline{#1}}} % <--- underline + bold
{#1}}
\renewbibmacro*{name:family}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\mkbibnamecomplete{%
\ifdefvoid{#3}
{}
{\ifcapital
{\mkbibnameprefix{\MakeCapital{#3}}\isdot}
{\mkbibnameprefix{#3}\isdot}%
\ifprefchar{}{\bibnamedelimc}}%
\mkbibnamefamily{#1}\isdot}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}
\mkbibnamecomplete{%
\mkbibnamefamily{#1}\isdot}}}%
\renewbibmacro*{name:given-family}[4]{%
\usebibmacro{name:delim}{#2#3#1}%
\usebibmacro{name:hook}{#2#3#1}%
\mkbibnamecomplete{%
\ifdefvoid{#2}{}{\mkbibnamegiven{#2}\isdot\bibnamedelimd}%
\ifdefvoid{#3}{}{%
\mkbibnameprefix{#3}\isdot
\ifprefchar
{}
{\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}
\renewbibmacro*{name:family-given}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\mkbibnamecomplete{%
\ifdefvoid{#3}{}{%
\ifcapital
{\mkbibnameprefix{\MakeCapital{#3}}\isdot}
{\mkbibnameprefix{#3}\isdot}%
\ifprefchar{}{\bibnamedelimc}}%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
\ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibnamecomplete{%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
\ifboolexpe{%
test {\ifdefvoid{#2}}
and
test {\ifdefvoid{#3}}}
{}
{\revsdnamepunct}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}}
\begin{document}
Blah blah \dots as seen in the research article published~\cite{Doe2018}.
Blah blah \dots as seen in the research article published~\cite{sigfridsson}.
\printbibliography
\end{document}
产生输出,
答案3
从biblatex
3.13(2019-08-17 发布)开始,有该\mkbibcompletename
命令。
在序言中:
\renewcommand*{\mkbibcompletename}[1]{%
\ifitemannotation{jointfirst}
{\underline{#1}*}% e.g., J͟o͟h͟n͟_D͟o͟e͟* (if jointfirst)
{#1}% e.g., John Doe (otherwise)
}
现在将作者“1”和“2”注释为jointfirst
作者:
@article{Doe2018,
author = {Doe, John and Bloggs, Joe and Supervisor, Nice},
author+an = {1=jointfirst;2=jointfirst},
title = {The next big breakthrough in science},
journal = {Journal of Pure Awesomeness},
volume = {17},
date = {2018-06},
pages = {507--514},
}
完整示例:
\documentclass{article}
\usepackage{biblatex}
\renewcommand*{\mkbibcompletename}[1]{%
\ifitemannotation{jointfirst}
{\underline{#1}*}% e.g., J͟o͟h͟n͟_D͟o͟e͟* (if jointfirst)
{#1}% e.g., John Doe (otherwise)
}
\begin{filecontents}{\jobname.bib}
@article{Doe2018,
author = {Doe, John and Bloggs, Joe and Supervisor, Nice},
author+an = {1=jointfirst;2=jointfirst},
title = {The next big breakthrough in science},
journal = {Journal of Pure Awesomeness},
volume = {17},
date = {2018-06},
pages = {507--514},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Blah blah \dots as seen in the research article published~\cite{Doe2018}.
\printbibliography
\end{document}