Dans BibLaTeX, comment délimiter le titre et le sous-titre par deux points, mais pas lorsque le titre se termine par un point d'interrogation?
Avec BibLaTeX, j'aimerais séparer le titre et le sous-titre par deux points, comme cela se fait dans certains styles de citation. Cependant, j'aimerais que le mécanisme détecte si le titre se termine par un guillemet et si c'est le cas, omettez le subtitlepunct
.
La documentation du §4.7.3 dit:
\addcolon
Ajoute un deux-points sauf s'il est précédé d'une virgule, d'un point-virgule, d'un autre deux-points ou d'un point.
Puis-je ajouter des "guillemets" à cette liste? Ie, y a-t-il une solution qui évite \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}
Réponses
Vous pouvez déclarer une ponctuation acceptable avant \addcolon
avec \DeclarePunctuationPairs
. Le paramètre par défaut
\DeclarePunctuationPairs{colon}{*!?}
autorise les points d'abréviation, les points d'exclamation et les points d'interrogation avant un deux-points. Après tous les autres signes de ponctuation, le deux-points est supprimé.
Tu veux probablement
\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}

Notez que cela \DeclarePunctuationPairs
est généralement spécifique à la langue et a donc généralement besoin de vivre \DefineBibliographyExtras
. Cela n'est pas nécessaire dans le MWE (qui ne charge ni babel
ni polyglossia
), mais peut être très pertinent dans votre application réelle. Voir Reconnaissance de ponctuation Biblatex pour plus de détails.