biblatex:autocite 和 fullcite 的自定义行为

biblatex:autocite 和 fullcite 的自定义行为

我使用 biblatex

\usepackage[giveninits=true, backend=bibtex, style=verbose-trad2]{biblatex}
\ExecuteBibliographyOptions[online]{eprint=true}

是否可以指示它使用选项

doi=false, eprint=false

使用命令时\autocite,但选项

doi=true, eprint=true

使用命令\fullcite

答案1

biblatex不能为不同的命令设置不同的选项\...cite...,但是如果您知道选项背后的内部实现,通常是可以做到的。

选项doieprinturl只是isbn将一个开关设置bbx:<option>为 true 或 false。这可以在任何时候轻松完成,我们只需要一个好方法来挂接到相关的命令。

以下全局地将doi和设置eptint为false,但在参考书目和\fullcite和中将它们设置为true \footfullcite

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[giveninits=true, backend=bibtex, style=verbose-trad2]{biblatex}
\ExecuteBibliographyOptions{doi=false, eprint=false}
\ExecuteBibliographyOptions[online]{eprint=true}

\AtBeginBibliography{%
  \toggletrue{bbx:doi}%
  \toggletrue{bbx:eprint}%
}
\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\toggletrue{bbx:doi}%
      \toggletrue{bbx:eprint}%
      \DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\footfullcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usedriver
     {\toggletrue{bbx:doi}%
      \toggletrue{bbx:eprint}%
      \DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson}
ipsum \autocite{baez/article}

Lorem \fullcite{sigfridsson}
ipsum \fullcite{baez/article}

\printbibliography
\end{document}

E. Sigfridsson 和 U. Ryde。《从静电势和矩推导原子电荷的方法比较》。《计算化学杂志》19.4(1998 年),第 377-395 页。

相关内容