(Biblatex) Como suprimir o campo da página no footcite se a nota estiver presente?

(Biblatex) Como suprimir o campo da página no footcite se a nota estiver presente?

Para minha tese, estou usando o biblatexstyle oxnotes, que é um estilo bastante semelhante ao verbose e usa notas de rodapé.

Se eu usar o \footcitecomando com uma nota de postagem especificada, para uma entrada com números de página (por exemplo, um capítulo de livro), a nota de rodapé será impressaamboso número da página e a pós-nota. Eu gostaria de dizer biblatexpara suprimir o número da página em uma nota de rodapé quando uma nota posterior estiver presente.

Atualmente, um \footcitecomo este:

\footcite[1-5]{barkan2003}

...irá produzir a nota de rodapé

Barkan, 'Título',Título do periódico(2003),1-20 em 1-5.

Gostaria de suprimir as páginas (ou seja, "1-20") em \footcitecomandos onde uma nota de postagem é especificada, de modo que leia

Barkan, 'Título',Título do periódico(2003), 1-5.

Tentei o seguinte comando, mas ele suprime o campo de páginas tanto nas citações quanto na bibliografia.

\DeclareFieldFormat{pages}{%
    \iffieldundef{pages}{}{\iffieldundef{postnote}{}{\clearfield{pages}}}}

Existe uma maneira de biblatexsuprimir o campo de páginasapenasnos \footcitecomandos e não na bibliografia?

Qualquer ajuda em uma solução seria muito apreciada!

\documentclass{article}
\usepackage[style=oxnotes]{biblatex}
\RequireBibliographyStyle{oxref}

\begin{filecontents*}{document.bib}
@article{barkan2003,
  title = {Title},
  journaltitle = {Journal Title},
  date = {2003},
  pages = {1-20},
  author = {Barkan},
}
\end{filecontents*}
\addbibresource{document.bib}

\begin{document}
Text.\footcite[1-5]{barkan2003}
\end{document}

Responder1

biblatex-oxrefO estilo de citação do oxnotesé baseado verbose.cbxe suporta todas as suas opções. Em particular, você pode usar a opção citepages, que está documentada noverboseexemplo de estilo. (Em versões anteriores, biblatex-oxrefalguns aspectos citepageseram um pouco contra-intuitivos, mas isso foi melhorado na versão 1.1, consultehttps://github.com/alex-ball/biblatex-oxref/issues/8.)

  • O oxnotes-default citepages=separatefornece

    Wolfgang A. Herrmann et al., “Um carbeno carbocíclico como um ligante catalisador eficiente para reações de acoplamento C – C”,Angew. Química. Internacional Ed.45/23 (2006), 3859–62 em 3860–1.

  • Com citepages=omito pagescampo é automaticamente omitido se a pós-nota for numérica

    Wolfgang A. Herrmann et al., “Um carbeno carbocíclico como um ligante catalisador eficiente para reações de acoplamento C – C”,Angew. Química. Internacional Ed.45/23 (2006), 3860–1.

  • citepages=suppressomite o pagescampo mesmo que a nota final não seja numérica.

  • citepages=permit(o padrão dos verboseestilos padrão) mostraria apenas os dois campos

    Wolfgang A. Herrmann et al., “Um carbeno carbocíclico como um ligante catalisador eficiente para reações de acoplamento C – C”,Angew. Química. Internacional Ed.45/23 (2006), 3859–62, 3860–1.

Então você poderia tentar

\documentclass{article}

\usepackage[style=oxnotes, citepages=omit]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
Text.\footcite[3860-3861]{herrmann}

\printbibliography
\end{document}

Wolfgang A. Herrmann et al., “Um carbeno carbocíclico como um ligante catalisador eficiente para reações de acoplamento C – C”, *Angew. Química. Internacional Ed.* 45/23 (2006), 3860–1.


A \DeclareFieldFormatideia não funcionou porque \iffieldundef{pages}{}{\iffieldundef{postnote}{}{\clearfield{pages}}}não é um comando que imprima nada. Diz apenas biblatexpara excluir pagesem uma determinada situação. Mas \DeclareFieldFormatdeve ser usado para informar biblatexcomo imprimir coisas, compare com o padrão

\DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}}

ou o mais simples

\DeclareFieldFormat{title}{\mkbibemph{#1}}

A \DeclareFieldFormatdeve sempre envolver a #1.

Em essência, esta definição exclui o campo no caso que você deseja (e não excluiria o campo da bibliografia, porque \iffieldundef{postnote}seria verdade lá), mas substitui a definição que informa biblatexcomo imprimir o pagescampo em primeiro lugar, o que significa que ele sempre é descartado na saída.

Excluir um campo somente em \DeclareFieldFormatpode causar pontuação falsa porque biblatexpensa que imprimiu algo quando não o fez.

Portanto, eu não tentaria prosseguir com essa abordagem específica aqui.


Observe que o

\RequireBibliographyStyle{oxref}

não foi necessário. Em geral, você não deveria usar \RequireBibliographyStyleou \RequireCitationStyleem um documento. O estilo é carregado através biblatexda styleopção (ou separadamente através bibstylede e citestyle).

informação relacionada