我和以下用户的情况相同: biblatex:在可能嵌套脚注的情况下增强 \autocite
我想\autocite
在 中使用\footnote
。这会导致引用被括在括号中。我想更改 的行为,以便打印不带括号的引用,\autocite
就像\footnote
简单调用 一样\cite
。
\autocite
我怎样才能改变其中的行为\footnote
?
答案1
解决方案取决于引用样式。对于执行 的样式authortitle
,verbose
以及它们各自的变体(以及) ,我们只需要重新定义底层宏,使其不会在脚注中添加括号(通过替换为)。biblatex-juradiss
autocite=footnote
\smartcite
\mkbibparens
\textnormal
\documentclass{article}
\usepackage[style=authortitle]{biblatex}
\DeclareCiteCommand{\smartcite}[\iffootnote\textnormal\mkbibfootnote]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\smartcites}
[\iffootnote\textnormal\mkbibfootnote]{\smartcite}{\multicitedelim}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\null\vfill% just for the example
Some text \autocite{A01}.
Some text.\footnote{A footnote \autocite{A01}.}
\printbibliography
\end{document}
authoryear
对于默认执行的样式autocite=inline
(使用\parencite
),我们需要声明一个新的autocite
选项值(例如inlineplainfootnote
),它指向一个新的底层宏(例如\mysmartcite
),它可以执行您想要的操作(在普通文本中添加括号,不要在脚注中添加它们)。
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\DeclareAutoCiteCommand{inlineplainfootnote}{\mysmartcite}{\mysmartcites}
\DeclareCiteCommand{\mysmartcite}[\iffootnote\textnormal\mkbibparens]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\mysmartcites}
[\iffootnote\textnormal\mkbibparens]{\mysmartcite}{\multicitedelim}
\ExecuteBibliographyOptions{autocite=inlineplainfootnote}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\null\vfill% just for the example
Some text \autocite{A01}.
Some text.\footnote{A footnote \autocite{A01}.}
\printbibliography
\end{document}