在 BibLaTeX 中,如何用冒号分隔标题和副标题,但标题以问号结尾时则不然?

在 BibLaTeX 中,如何用冒号分隔标题和副标题,但标题以问号结尾时则不然?

使用 BibLaTeX,我希望用冒号分隔标题和副标题,就像某些引用样式一样。但是,我希望有一种机制可以检测标题是否以引号结尾,如果以引号结尾,则省略subtitlepunct

§4.7.3 中的文档指出:

\addcolon添加冒号,除非其前面有逗号、分号、另一个冒号或句号。

我可以在该列表中添加“引号”吗?即,是否有解决方案可以避免这种情况\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}

答案1

您可以\addcolon在之前声明可接受的标点符号\DeclarePunctuationPairs。默认设置

\DeclarePunctuationPairs{colon}{*!?}

允许在冒号前使用缩写点、感叹号和问号。在所有其他标点符号之后,冒号将被隐藏。

你可能想要

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

AU Thor。示例标题?示例副标题。2020 年。

笔记\DeclarePunctuationPairs通常是特定于语言的,因此通常需要存在于 中\DefineBibliographyExtras。这在 MWE 中不是必需的(它既不加载babel也不加载polyglossia),但可能与你的实际应用程序非常相关。请参阅Biblatex 标点符号识别更多细节。

相关内容