A segunda citação dentro de uma nota resulta em um ponto extra

A segunda citação dentro de uma nota resulta em um ponto extra

Se eu tiver uma note= que inclui um \cite, então o segundo \cite terá um ponto inicial "."

Por exemplo, na saída abaixo, recebo Another sentence.[. 2], mas esperoAnother sentence.[2]

[1]
References
[1] A sentence.[2] Another sentence.[. 2] Yet another sentence[2]
[2] An Author. “A Title”. In: ().

Aqui está uma captura de tela:

Saída mostrando ". 2" em vez de "2"

Aqui está um MWE:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{\jobname.bib}

\begin{filecontents}{\jobname.bib}
@misc{AFootnote,
  note={A sentence.\cite{AnArticle}
    Another sentence.\cite{AnArticle}
    Yet another sentence.\cite{AnArticle}\nopunct}
}

@article{AnArticle,
author={An Author},
title={A Title},
}
\end{filecontents}

\begin{document}

\cite{AFootnote}

\printbibliography

\end{document}

Para compilar o exemplo, eu uso:

        pdflatex book
        biber book
        pdflatex book
        biber book
        pdflatex book
        pdflatex book

Estou executando estas versões do biber e pdflatex no macOS:

bash-3.2$ biber --version
biber version: 2.19
bash-3.2$ pdflatex --version
pdfTeX 3.141592653-2.6-1.40.25 (TeX Live 2023)
kpathsea version 6.3.5
Copyright 2023 Han The Thanh (pdfTeX) et al.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.39; using libpng 1.6.39
Compiled with zlib 1.2.13; using zlib 1.2.13
Compiled with xpdf version 4.04
bash-3.2$ 

Sim, percebo que isso é bastante estranho. Um editor em potencial prefere ter notas de rodapé e referências misturadas no final de cada capítulo, portanto, para notas de rodapé, estou usando uma mistura com uma nota. Algumas das próprias notas de rodapé contêm referências a outras fontes. O que é estranho é que é a segunda citação que tem o ponto inicial. Usar \supercite resulta em algo semelhante com um "." inicial.

Responder1

Este é basicamente o mesmo problema quehttps://github.com/plk/biblatex/issues/988ebiblatex: \parencite no campo de notas imprime espúrio ; com estilo autorano-icomp(assim comobiblatex: \DeclareCiteCommand adiciona ponto e vírgula entre \printfield e \printnames, mas apenas às vezes): Dentro de um contexto bibliográfico, biblatexnão redefine automaticamente o buffer de pontuação dos \...citecomandos. Isto permite que \...citeos comandos trabalhem diretamente em conjunto com macros bibliográficas e outros biblatexcódigos que produzem texto na bibliografia, mas não funciona particularmente bem quando há texto e pontuação que não são produzidos por biblatexsi só (como o conteúdo real dos campos).

Algumas outras soluções são discutidas nos links, mas para o seu caso de uso, onde @miscé essencialmente sempre uma nota de rodapé normal, eu provavelmente diria biblatexpara não assumir que o noteconteúdo de tal entrada esteja na bibliografia.

\documentclass{article}
\usepackage{biblatex}

\DeclareFieldFormat[misc]{note}{%
  \togglefalse{blx@bibliography}%
  #1%
}

\begin{filecontents}{\jobname.bib}
@misc{AFootnote,
  note = {A sentence.\cite{AnArticle}
          Another sentence.\cite{AnArticle}
          Yet another sentence.\cite{AnArticle}\nopunct},
}
@article{AnArticle,
  author = {An Author},
  title  = {A Title},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{AFootnote}

\printbibliography
\end{document}

[1] Uma frase.[2] Outra frase.[2] Mais uma frase.[2] [2] Um autor. "Um título". Em: ().


Observe que existe onotes2bibpacoteque permite enviar notas de rodapé para a bibliografia usando uma interface mais parecida com o \footnotecomando normal. Em particular, você não precisa escrever manualmente sua nota de rodapé no .bibarquivo (onde, convenhamos, eles realmente não pertencem, semanticamente - internamente, o pacote faz o mesmo que você, mas o esconde do usuário final ). Este pacote não sofre do mesmo problema na maioria das situações "normais", pois define um driver dedicado para as "notas de rodapé" que não utiliza o buffer de pontuação antes da impressão da nota.

\documentclass{article}
\usepackage[backend=biber, style=numeric, sorting=none,]{biblatex}
\usepackage{notes2bib}

\begin{filecontents}{\jobname.bib}
@article{AnArticle,
  author = {An Author},
  title  = {A Title},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\bibnote{A sentence.\cite{AnArticle}
          Another sentence.\cite{AnArticle}
          Yet another sentence.\cite{AnArticle}}

\printbibliography
\end{document}

[1] Uma frase.[2] Outra frase.[2] Mais uma frase.[2]. [2] Um autor. "Um título". Em: ().

Se você precisar de uma correção semelhante com notes2bib, você pode usar

\DeclareFieldFormat[bibnote]{note}{%
  \togglefalse{blx@bibliography}%
  #1%
}

informação relacionada