我今天正在整理一份出版物清单。我首先从我的简历中复制它,我一直手动管理列表。然而,我最近注意到了这一点,biblatex-publist
所以我想我会试一试。
这个问题是我遇到的三个问题中的第一个,从我的角度来看,这也是最根本的一个。
该软件包的一个关键特性是它允许您从出版物的作者列表中省略自己的姓名,就像制作列表时通常做的那样。但是,我无法让此功能正常工作,因为我使用“FirstName MiddleInitial. Surname”进行发布,因此author
指定为Surname, First M.
。如果我要求省略所有带有我姓氏的名字,它可以正常工作。但是,我的姓氏非常常见,所以这不是一个好的解决方案。(它可以用于这种情况,但我不想依赖它。)然而,我尝试指定我的名字的任何尝试 - 例如 asFirst
或 asFirst M.
都不会省略我的名字。
我不确定我是否误解了语法,但我尝试了一位不使用中间名首字母的合著者的名字,在这种情况下,同时指定姓氏和名字都按预期工作。所以看起来这肯定与中间名首字母有关。
以下是 MWE:
\documentclass{article}
\usepackage{filecontents}
\usepackage[bibstyle=publist,backend=biber]{biblatex}
\omitname[Me I.]{Mine}
\bibliography{\jobname}
\begin{filecontents}{\jobname.bib}
@article{my-article,
author = {Mine, Me I.},
title = {Paper I Wrote},
journal = {Some Journal},
year = 1022,
pages = {99--117},
volume = 45,
number = 2}
\end{filecontents}
\begin{document}
\nocite{my-article}
\printbibliography
\end{document}
生成结果:
我也尝试了以下操作,结果相同:
\omitname[Me]{Mine}
是否有一种简单的方法可以纠正此问题,以便即使对于使用中间名首字母发表的作者也能实现省略?
请注意,我并不特别喜欢biblatex-publist
。如果有其他方法,那就太好了。(尤其如此,因为这不是我使用时遇到的唯一困难,biblatex-publist
所以替代方案可能更可取!)
答案1
如果我们看一下.bbl
文件(由 Biber 创建),我们可以看到简单的内容author = {Mine, Me I.}
变成了(插入了换行符以便于阅读)
\name{author}{1}{}{%
{{hash=41274140480afc1dcd1fc7fc1b6f2529}
{Mine}
{M\bibinitperiod}
{Me\bibnamedelima I.}
{M\bibinitperiod\bibinitdelim I\bibinitperiod}
{}{}{}{}}%
}
就biblatex
“Mine, Me I.”而言,它的名字是Me\bibnamedelima I.
,所以我们必须根据该名字进行检查:
\omitname[Me\bibnamedelima I.]{Mine}
完整代码
\documentclass{article}
\usepackage{filecontents}
\usepackage[bibstyle=publist,backend=biber]{biblatex}
\omitname[Me\bibnamedelima I.]{Mine}
\begin{filecontents*}{\jobname.bib}
@article{my-article,
author = {Mine, Me I.},
title = {Paper I Wrote},
journal = {Some Journal},
year = 1022,
pages = {99--117},
volume = 45,
number = 2,
}
@article{my-article-w,
author = {Mine, Me I. and von Last, Jr, First},
title = {Paper I Wrote With Someone Else},
journal = {Some Journal},
year = 1023,
pages = {23--45},
volume = 2,
number = 5,
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{my-article,my-article-w}
\printbibliography
\end{document}
对于.bbl
由 BibTeX 创建的文件,author = {Mine, Me I.}
变为
\name{author}{1}{}{%
{{}%
{Mine}{M.}%
{Me~I.}{M.~I.}%
{}{}%
{}{}}%
}
因此,我们必须来\omitname[Me~I.]{Mine}
这里。
在biblatex-publist
使用哈希值比较名称之前,最好的办法是查找文件中格式化的名称.bbl
,然后将名字和姓氏从那里复制到\omitname
宏中。
还要注意的是,目前biblatex-publist
只比较名字和姓氏,而不比较 Jr./von(前缀和后缀)部分,所以您最终可能会省略太多(在极少数情况下)。
答案2
我以不同的方式处理了这个问题,因为在包的当前 UI 中无法使用名称哈希。在包的 0.9 版本中(刚刚进入 CTAN),这个问题应该已经修复。此外,我为\omitname
名称前缀(又名 von-part)添加了第二个可选参数。