Estou na mesma situação do seguinte usuário: biblatex: Aprimorando \autocite no caso de possíveis notas de rodapé aninhadas
Quero usar \autocite
dentro de um \footnote
. Isso faz com que a citação seja colocada entre parênteses. Quero mudar o comportamento de \autocite
usado dentro \footnote
para imprimir a citação sem parênteses, como \cite
faria uma simples chamada de.
Como posso mudar o comportamento de \autocite
dentro do \footnote
?
Responder1
A solução depende do estilo de citação. Para estilos como authortitle
, verbose
e suas respectivas variantes (e também para biblatex-juradiss
) que executam autocite=footnote
, só precisamos redefinir a \smartcite
macro subjacente para que ela não adicione parênteses nas notas de rodapé (substituindo \mkbibparens
por \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}
Para estilos como authoryear
esse, por padrão, execute autocite=inline
(que usa \parencite
), precisamos declarar um novo autocite
valor de opção (digamos, inlineplainfootnote
) que aponta para uma nova macro subjacente (digamos, \mysmartcite
) que faz o que você deseja (adicione parênteses no texto normal, não adicione-os em notas de rodapé).
\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}