En BibLaTeX, ¿cómo delimitar el título y el subtítulo con dos puntos, pero no cuando el título termina con un signo de interrogación?

Dec 09 2020

Con BibLaTeX, me gustaría separar el título y el subtítulo con dos puntos, como se hace en algunos estilos de citas. Sin embargo, me gustaría que el mecanismo detecte si el título termina entre comillas y, si lo hace, omita subtitlepunct.

La documentación en §4.7.3 dice:

\addcolon Agrega dos puntos a menos que esté precedido por una coma, un punto y coma, otros dos puntos o un punto.

¿Puedo agregar "comillas" a esa lista? Es decir, ¿hay alguna solución que evite \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}

Respuestas

5 moewe Dec 09 2020 at 22:38

Puede declarar una puntuación aceptable antes \addcoloncon \DeclarePunctuationPairs. La configuración predeterminada

\DeclarePunctuationPairs{colon}{*!?}

permite la abreviatura de puntos, signos de exclamación y signos de interrogación antes de dos puntos. Después de todos los demás signos de puntuación, se suprimen los dos puntos.

Probablemente quieras

\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}

Tenga en cuenta que \DeclarePunctuationPairsgeneralmente es específico del idioma y, por lo tanto, generalmente debe vivir en él \DefineBibliographyExtras. Esto no es necesario en el MWE (que no carga babelni polyglossia), pero puede ser muy relevante en su aplicación del mundo real. Consulte Reconocimiento de puntuación Biblatex para obtener más detalles.