我想引用文章作为完整参考,但只在正文中引用。到目前为止,下面的 MWE 中一切都正常,但仍然有我想隐藏的文章标题。
我发现有一种方法是添加\DeclareFieldFormat[article]{title}{}
; 但这会取消标题和,,
在标题所在的位置留下两个逗号 ( )。
另一个建议是使用\AtEveryBibitem{\clearlist{title}}
,但这似乎根本不起作用。
有人知道如何删除标题吗?这样引用就变成了
我想引用作者等人(2050),期刊A,50, 63–90 以及作者 (2013),期刊B,50,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}%
\usebibmacro{name:andothers}}
此处(另请参阅Biblatex:\footcite 中只有姓氏以获得其他解决方案)。