Di BibLaTeX, bagaimana cara membatasi judul dan subjudul dengan titik dua, tetapi tidak jika judul diakhiri dengan tanda tanya?

Dec 09 2020

Dengan BibLaTeX, saya ingin memisahkan judul dan subjudul dengan titik dua, seperti yang dilakukan pada beberapa gaya kutipan. Namun, saya ingin mekanisme mendeteksi jika judul diakhiri dengan tanda kutip dan jika ya, hilangkan subtitlepunct.

Dokumentasi di §4.7.3 mengatakan:

\addcolon Menambahkan titik dua kecuali jika diawali dengan koma, titik koma, titik dua, atau titik.

Dapatkah saya menambahkan "tanda kutip" ke daftar itu? Yaitu, apakah ada solusi yang menghindar \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}

Jawaban

5 moewe Dec 09 2020 at 22:38

Anda dapat menyatakan tanda baca yang dapat diterima sebelumnya \addcolondengan \DeclarePunctuationPairs. Pengaturan default

\DeclarePunctuationPairs{colon}{*!?}

memungkinkan titik singkatan, tanda seru dan tanda tanya sebelum titik dua. Setelah semua tanda baca lainnya, titik dua disembunyikan.

Anda mungkin ingin

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

Perhatikan bahwa \DeclarePunctuationPairsbiasanya bahasa tertentu dan oleh karena itu biasanya perlu digunakan \DefineBibliographyExtras. Ini tidak diperlukan di MWE (yang tidak memuat babelmaupun polyglossia), tetapi mungkin sangat relevan dalam aplikasi dunia nyata Anda. Lihat pengenalan tanda baca Biblatex untuk lebih jelasnya.