我指的是这个邮政。请考虑以下 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=inline
autocite=footnote
autocite=inline
但什么不起作用。我希望带有 的 multicite\autocites
看起来与带有 的 multicite 完全一样。但是当我在包选项中使用而不是 时,\footcites
任何修改都不应该影响样式,因为我想在两种样式之间来回切换。有人知道如何影响命令吗?autocite=inline
autocite=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}