我在一份文档中列出了 biblatex 项目,其中还包含一个参考书目部分。在此部分中,我想列出一些参考书目项目,\fullcite
但其样式与主要参考书目不同。
我可以像这样更改作者的数量:
\begingroup
\defcounter{minnames}{2}
\fullcite{key}
\endgroup
我怎样才能进一步修改的风格\fullcite
?
移动网络
\documentclass[en-US,de-DE]{article}
\usepackage[
style=authoryear-ibid,
maxnames=2,
backend=biber,
safeinputenc,
isbn=false,
doi=false,
maxcitenames=2,
urldate=iso8601,
date=iso8601
]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{key,
author = {Author, A.},
year = {2001},
title = {Title},
publisher = {Publisher},
pagetotal = {383},
edition = {1},
pages = {151--154},
url = {http://www.google.com},
}
\end{filecontents}
\begin{document}
text1
\fullcite{key}
text2
\cite{key}
text3
\printbibliography[heading=bibintoc]
\end{document}
我想从这些列出的项目中删除年份、URL\fullcite
以及页码和书籍版本?
答案1
有两种方法可以做到这一点:您可以重新定义命令\fullcite
来清除您不想要的字段,或者如评论中所述,您可以使用\AtEverycitekey
它来做同样的事情。
从概念上讲,修改\fullcite
似乎是更好的解决方案,因为使用\AtEveryCitekey
会修改任何引用,所以如果你想从\fullcite
通常包含在常规中的任何信息中删除,\cite
那么你必须使用这个解决方案。
如果您只是从中删除 URL、版本和页面,则\fullcite
使用不会产生任何不良副作用,\AtEveryCitekey
因为只有\fullcite
引用命令才会输出这些字段。但是如果您还想删除年份(如您在评论中提到的),那么修改\fullcite
是唯一的方法。\AtEveryCitekey
出于这个原因,我从代码中删除了解决方案,但将其单独放在最后。
根据您需要抑制的信息类型,您可能需要使用\clearfield
、\clearlist
或之一。例如,在、 或 的\clearname
情况下,它们的类型是列表,因此您需要使用来清除它们。文档的第 2.2.2 节描述了每个字段及其数据类型。publisher
location
\clearlist
biblatex
\documentclass[en-US,de-DE]{article}
\usepackage[
style=authoryear-ibid,
maxnames=2,
backend=biber,
safeinputenc,
isbn=false,
doi=false,
maxcitenames=2,
urldate=iso8601,
date=iso8601
]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{key,
author = {Author, A.},
year = {2001},
title = {Title},
publisher = {Publisher},
pagetotal = {383},
edition = {1},
pages = {151--154},
url = {http://www.google.com},
}
\end{filecontents}
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\clearfield{url}%
\clearfield{pages}%
\clearfield{pagetotal}%
\clearfield{edition}%
\clearfield{labelyear}%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\begin{document}
text1
\cite{key}
\fullcite{key}
text2
\cite{key}
text3
\printbibliography[heading=bibintoc]
\end{document}
使用\AtEveryCitekey
如上所述,\AtEveryCitekey
如果常规引用中所需的信息与 中隐藏的信息没有重叠,则使用 也可以起作用。\fullcite
以下是使用该方法的代码:
\AtEveryCitekey{
\clearfield{url}
\clearfield{pages}
\clearfield{pagetotal}
\clearfield{edition}
\clearfield{labelyear}
}