No BibLaTeX, como delimitar título e subtítulo por dois pontos, mas não quando o título termina com um ponto de interrogação?
Com BibLaTeX, gostaria de separar o título e o subtítulo com dois pontos, como é feito em alguns estilos de citação. No entanto, gostaria que o mecanismo detectasse se o título termina entre aspas e, se isso acontecer, omita o subtitlepunct
.
A documentação em §4.7.3 diz:
\addcolon
Adiciona dois pontos, a menos que seja precedido por uma vírgula, um ponto e vírgula, outro dois pontos ou um ponto.
Posso adicionar "aspas" a essa lista? Ou seja, existe uma solução que evita \isdot
?
\documentclass{article}
\begin{filecontents}{test.bib}
@book{testbook,
author = {A. U. Thor},
year = {2020},
title = {An example title?},
subtitle = {An example subtitle}
}
\end{filecontents}
\usepackage{biblatex}
\addbibresource{test.bib}
\renewcommand*{\subtitlepunct}{\addcolon\space}
\begin{document}
\nocite{testbook}
\printbibliography
\end{document}
Respostas
Você pode declarar pontuação aceitável antes \addcolon
com \DeclarePunctuationPairs
. A configuração padrão
\DeclarePunctuationPairs{colon}{*!?}
permite pontos de abreviatura, pontos de exclamação e interrogação antes de dois pontos. Depois de todas as outras marcas de pontuação, os dois pontos são suprimidos.
Você provavelmente quer
\documentclass{article}
\usepackage{biblatex}
\renewcommand*{\subtitlepunct}{\addcolon\space}
\DeclarePunctuationPairs{colon}{*}
\begin{filecontents}{\jobname.bib}
@book{testbook,
author = {A. U. Thor},
year = {2020},
title = {An example title?},
subtitle = {An example subtitle}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{testbook}
\printbibliography
\end{document}

Observe que \DeclarePunctuationPairs
geralmente é específico do idioma e, portanto, geralmente precisa ser vivido \DefineBibliographyExtras
. Isso não é necessário no MWE (que não carrega babel
nem polyglossia
), mas pode ser muito relevante em seu aplicativo do mundo real. Consulte reconhecimento de pontuação Biblatex para obter mais detalhes.