Biblatex で 2 つの入力フィールド間の句読点を選択的に削除する方法

Biblatex で 2 つの入力フィールド間の句読点を選択的に削除する方法

入力フィールドの出力を変更したいです。現在はスタイル@thesisを使用しています。biblatexchem-acs

エントリの使用:

@thesis{ABC2019,
author = {LastName, A.},
school = {University of example},
title = {Title of fancy science stuff},
type = {PhD thesis},
year = {2019}
}

次のような結果になります:

LastName、A。派手な科学のもののタイトル。、博士論文、大学、2019年。

しかし、私はジャーナルの引用規則に従いたいので、タイトルの後のカンマ区切り記号を削除する必要があります。そこで、私が目指しているのは次のようになります。

LastName、A。派手な科学のもののタイトル。博士論文、例の大学、2019年。

これを実現する方法はありますか?

答え1

実際に望む出力に関係なく、現時点で得られる出力は正しくないように見えます。

ギア、I. デ・アール、聖人、司教、スカルド、そして音楽、12 世紀のオークニー伯爵領。音楽学的研究。博士論文、ウプサラ: ウプサラ大学、1985 年。

二重句読点「.,」は、ほとんどの人にとって間違いとみなされるでしょう。私はこれを報告しました。https://github.com/josephwright/biblatex-chem/issues/16

タイトルの後にカンマを入れたい場合、修正は次のように簡単です。

\DeclareFieldFormat*{title}{#1}

しかし、あなたは生理を望んでいるので、もう少しの作業が必要です。

これに対処する方法はいくつかあり、それぞれに長所と短所があります。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=chem-acs, backend=biber]{biblatex}

\renewbibmacro*{title}{%
  \ifboolexpr{
    test {\iffieldundef{title}}
    and
    test {\iffieldundef{subtitle}}
  }
    {}
    {\printtext[title]{%
       \printfield[titlecase]{title}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}%
     \newunit}%
  \printfield{titleaddon}%
  \printunit{\addperiod\space}}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{geer}
\printbibliography
\end{document}

ギア、I. デ アール、聖人、司教、スカルド、そして音楽、12 世紀のオークニー伯爵領。音楽学的研究。博士論文、ウプサラ: ウプサラ大学、1985 年。

関連情報