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?

Dec 09 2020

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

5 moewe Dec 09 2020 at 22:38

Você pode declarar pontuação aceitável antes \addcoloncom \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 \DeclarePunctuationPairsgeralmente é específico do idioma e, portanto, geralmente precisa ser vivido \DefineBibliographyExtras. Isso não é necessário no MWE (que não carrega babelnem polyglossia), mas pode ser muito relevante em seu aplicativo do mundo real. Consulte reconhecimento de pontuação Biblatex para obter mais detalhes.