删除 biblatex 参考文献中的标题

删除 biblatex 参考文献中的标题

我想引用文章作为完整参考,但只在正文中引用。到目前为止,下面的 MWE 中一切都正常,但仍然有我想隐藏的文章标题。

我发现有一种方法是添加\DeclareFieldFormat[article]{title}{}; 但这会取消标题,,在标题所在的位置留下两个逗号 ( )。

另一个建议是使用\AtEveryBibitem{\clearlist{title}},但这似乎根本不起作用。

有人知道如何删除标题吗?这样引用就变成了

我想引用作者等人(2050),期刊A50, 63–90 以及作者 (2013),期刊B50,63–90

这是一个最小工作示例:

\documentclass{scrartcl}

%%%%%%%%%%%%%%%%%%%%%%% THE REFERENCES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{entry1,
  author =   {Author, A. and Buthor, B. and Cusor, C.},
  title =    {Title A},   
  journal =      {Journal A},   
  volume =       {50},
  year =       {2050},
  pages =    {63--90},
}
@article{entry2,
  author =   {Author, A.},
  title =    {Title of Article B},
  journal =      {Journal B},   
  volume =       {50},
  year =       {2013},
  pages =    {63--90},
}
\end{filecontents}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY STYLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[style=authoryear,maxnames=1,backend=bibtex,doi=false,isbn=false,url=false]{biblatex}
\addbibresource{\jobname.bib}

\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
\DeclareFieldFormat{journaltitle}{\mkbibemph{#1},} % italic journal title 
\DeclareFieldFormat{pages}{#1}
%\DeclareFieldFormat[article]{title}{} % remove title
\renewbibmacro{in:}{} % remove "in"
\renewcommand{\mkbibnamefirst}[1]{} % remove first name
\renewcommand{\newunitpunct}{, }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN THE DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
I want to cite
\fullcite{entry1}
as well as
\fullcite{entry2}


\end{document}

答案1

不应使用以下方式抑制字段\DeclareFieldFormat{title}{},因为biblatex仍然可以认为它打印了title,即使它实际上没有这样做。这可能会导致多余和虚假的空格和标点符号 - 尽管有措施可以防止这种情况。事实上,使用\DeclareFieldFormat{<field>}{}抑制字段的策略似乎在许多情况下都能正常工作,但只是因为biblatex在后台疯狂地清理不需要的双标点符号。在 MWE 中,这实际上是不可能的,因为\renewcommand{\newunitpunct}{, }\renewcommand{\newunitpunct}{\addcomma\space}本来可以工作)。

如果你想删除title引文中的信息,可以使用

\AtEveryCitekey{\clearfield{title}}

要删除参考书目中的信息,

\AtEveryBibitem{\clearfield{title}}

还有更激进的解决方案,可以取消所有权,使其biblatex从一开始就不会被转移给

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldset=title, null]
    }
  }
}

.bbl或者在从with读取时隐藏标题的方式

\DeclareFieldInputHandler{title}{\def\NewValue{}}

如果您根本不想在文档中使用标题,那么激进的解决方案会更优雅一些。

同样,\renewcommand{\mkbibnamefirst}[1]{}隐藏名字并不是最好的主意,你可以尝试

\DeclareNameFormat{first-last}{%
  \usebibmacro{name:last}{#1}{#3}{#5}{#7}%
  \usebibma‌​cro{name:andother‌​s}}

此处(另请参阅Biblatex:\footcite 中只有姓氏以获得其他解决方案)。

相关内容