\fullcite 样式选项

\fullcite 样式选项

我在一份文档中列出了 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以及页码和书籍版本?

pdf 渲染

答案1

有两种方法可以做到这一点:您可以重新定义命令\fullcite来清除您不想要的字段,或者如评论中所述,您可以使用\AtEverycitekey它来做同样的事情。

从概念上讲,修改\fullcite似乎是更好的解决方案,因为使用\AtEveryCitekey会修改任何引用,所以如果你想从\fullcite通常包含在常规中的任何信息中删除,\cite那么你必须使用这个解决方案。

如果您只是从中删除 URL、版本和页面,则\fullcite使用不会产生任何不良副作用,\AtEveryCitekey因为只有\fullcite引用命令才会输出这些字段。但是如果您还想删除年份(如您在评论中提到的),那么修改\fullcite是唯一的方法。\AtEveryCitekey出于这个原因,我从代码中删除了解决方案,但将其单独放在最后。

根据您需要抑制的信息类型,您可能需要使用\clearfield\clearlist或之一。例如,在、 或 的\clearname情况下,它们的类型是列表,因此您需要使用来清除它们。文档的第 2.2.2 节描述了每个字段及其数据类型。publisherlocation\clearlistbiblatex

\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}
}

相关内容