使用自动引用时的 Biblatex+Biber footcite 样式

使用自动引用时的 Biblatex+Biber footcite 样式

我指的是这个邮政。请考虑以下 MWE:

\documentclass{article}
\usepackage[style=alphabetic, autocite=footnote]{biblatex}

% Footnote modifications:
    \DeclareCiteCommand{\footcite}[\mkbibfootnote]
        {\usebibmacro{prenote}}
        {\usebibmacro{citeindex}%
            \printtext[brackets]{\usebibmacro{cite} \usebibmacro{postnote}}}
        {\multicitedelim}
        {}  

\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]%
    {\footcite}{\multicitedelim}

\DeclareAutoCiteCommand{footnote}[l]{\footcite}{\footcites}

\DeclareFieldFormat{sentencecase}{\MakeSentenceCase{#1}}
\usepackage{xpatch}
\xpatchbibmacro{prenote}{\printfield{prenote}}{\printfield[sentencecase]{prenote}}{}{}

% Inline modifications:
    \DeclareCiteCommand{\parencite}[\mkbibparens]
        {\usebibmacro{prenote}}
        {\usebibmacro{citeindex}%
            \printtext[brackets]{\usebibmacro{cite} \usebibmacro{postnote}}}
        {\multicitedelim}
        {}

\DeclareMultiCiteCommand{\parencites}[\mkbibparens]%
  {\parencite}{\multicitedelim}

\begin{filecontents*}{bibliography.bib}
@BOOK{Cornelisse1979,
  author = {Cornelisse, J. W. and Schöyer, H. Ferry R. and Wakker, Karel F.},
  title = {Rocket Propulsion and Spaceflight Dynamics},
  year = {1979},
  publisher = {Pitman},
}
\end{filecontents*}

\bibliography{bibliography.bib}

\begin{document}
\null
\vfill

How one citation with autocite look like: \autocite[see][35]{Cornelisse1979}
How multicite with autocites look like: \autocites(\autocap{s}ee)()[][20]{Cornelisse1979}[][35]{Cornelisse1979}
How multicite with autocites should look like: \footcites(\autocap{s}ee)()[][20]{Cornelisse1979}[][35]{Cornelisse1979}
\end{document}

通过这个,我可以通过更改包选项中的 来autocite=footnote轻松地在内联和脚注引用之间切换。此外,任何引用的预注在使用时都将以大写字母开头,在使用时将以小写字母开头(好吧,需要注释掉某些内容,但这很容易)。autocite=inlineautocite=footnoteautocite=inline

什么不起作用。我希望带有 的 multicite\autocites看起来与带有 的 multicite 完全一样。但是当我在包选项中使用而不是 时,\footcites任何修改都不应该影响样式,因为我想在两种样式之间来回切换。有人知道如何影响命令吗?autocite=inlineautocite=footnote\autocites

答案1

似乎可能存在错误biblatex,但更有可能的是,我只是不明白发生了什么。似乎\autocites没有尊重 cite 命令中的更改。添加

\makeatletter
\letcs\autocites{blx@macite@footnote}
\makeatother

序言似乎解决了这个问题。

A错误报告这使得文档现在清楚地表明你需要

\ExecuteBibliographyOptions{autocite=footnote}

答案2

解决方案:

添加:

\DeclareCiteCommand{\autocite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[brackets]{\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\autocites}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[brackets]{\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

梅威瑟:

\begin{filecontents}{biblio.bib}
@Book{author00:_title,
  author =   {Author},
  title =    {Title},
  publisher =    {Publisher},
  year =     2000}
\end{filecontents}

\documentclass[12pt,twoside,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}

\usepackage{setspace}
\usepackage{filecontents}
\usepackage{graphicx} 
\usepackage{lmodern}
\usepackage{xspace}

\usepackage[autostyle=true]{csquotes}
\usepackage[style=alphabetic,
     autocite=footnote,
     hyperref,
     backend=biber,
     isbn=false,
     doi=false,
     url=false,
     date=year]{biblatex}
\AtEveryBibitem{\clearlist{language}}
\bibliography{biblio}
\usepackage[colorlinks]{hyperref}

\DeclareCiteCommand{\autocite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[brackets]{\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\autocites}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[brackets]{\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\begin{document}

\noindent \autocite[see][32]{author00:_title}\\
\autocites[see][]{author00:_title}\\

\printbibliography
\end{document}

在此处输入图片描述

相关内容