我如何让 biblatex 在右括号后放置句号?

我如何让 biblatex 在右括号后放置句号?

我的 MWE 看起来像这样

\documentclass{scrartcl}
\begin{filecontents}[force]{\jobname.bib}
@article{Oberländer-Târnoveanu1978,
   author       = {Oberländer-Târnoveanu, Ernest},
   title        = {Aspecte ale circulaţiei monedei greceşti în Dobrogea de Nord (sec. VI î.e.n.--I e.n.)},
   journaltitle = {Pontica},
   date         = {1978},
   pages        = {59--87},
   volume       = {XI},
}

@article{Ocheşeanu1970,
   author       = {Ocheşeanu, Radu},
   title        = {Monedele basileului Moskon aflate în colecţiile Muzeului de arheologie Constanţa},
   journaltitle = {Pontica},
   date         = {1970},
   pages        = {125--129},
   volume       = {III},
}
\end{filecontents}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

我知道区别在于右括号)。但是我怎样才能在带括号的标题后面得到一个句号呢?

在此处输入图片描述

答案1

biblatex的标点符号跟踪器基本上忽略任何类型的括号和圆括号,因此出于标点符号的目的,标题

title = {Aspecte ale circulaţiei monedei greceşti în Dobrogea de Nord (sec. VI î.e.n.--I e.n.)},

是相同的

 title = {Aspecte ale circulaţiei monedei greceşti în Dobrogea de Nord sec. VI î.e.n.--I e.n.},

由于该标题以点结尾,biblatex因此删除后面的句号以避免双重标点。

您可以告诉biblatex不要忽略标点符号跟踪中的括号。(原始定义\blx@setsfcodesbiblatex.styll. 1705-1720 中,在 v3.16 中将括号的设置\sfcodes为 0,我们将其设置为 1000。)

\documentclass{scrartcl}
\usepackage{biblatex}

\makeatletter
\def\blx@setsfcodes{%
  \let\blx@setsfcodes\relax
  \let\frenchspacing\blx@setfrcodes
  \let\nonfrenchspacing\blx@setencodes
  \ifnum\sfcode`\.>2000
    \blx@setencodes
  \else
    \blx@setfrcodes
  \fi
  \@setquotesfcodes
  \sfcode`\(=\@m
  \sfcode`\)=\@m
  \sfcode`\[=\@m
  \sfcode`\]=\@m
  \sfcode`\<=\@m
  \sfcode`\>=\@m}
\makeatother

\begin{filecontents}{\jobname.bib}
@article{Oberländer-Târnoveanu1978,
   author       = {Oberländer-Târnoveanu, Ernest},
   title        = {Aspecte ale circulaţiei monedei greceşti
                   în Dobrogea de Nord (sec. VI î.e.n.--I e.n.)},
   journaltitle = {Pontica},
   date         = {1978},
   pages        = {59--87},
   volume       = {XI},
}
@article{Ocheşeanu1970,
   author       = {Ocheşeanu, Radu},
   title        = {Monedele basileului Moskon aflate
                   în colecţiile Muzeului de arheologie Constanţa},
   journaltitle = {Pontica},
   date         = {1970},
   pages        = {125--129},
   volume       = {III},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

Ernest Oberländer-Târnoveanu。“希腊货币流通的方面——北多布罗加(第六部分至第七部分)”。《Pontica XI》(1978 年),第 59-87 页。


如果您希望保留正常biblatex行为,您可以\@在此标题的末尾添加,以告诉标点符号跟踪器忽略括号中的点。

\documentclass{scrartcl}
\usepackage{biblatex}

\begin{filecontents}{\jobname.bib}
@article{Oberländer-Târnoveanu1978,
   author       = {Oberländer-Târnoveanu, Ernest},
   title        = {Aspecte ale circulaţiei monedei greceşti
                   în Dobrogea de Nord (sec. VI î.e.n.--I e.n.)\@},
   journaltitle = {Pontica},
   date         = {1978},
   pages        = {59--87},
   volume       = {XI},
}
@article{Ocheşeanu1970,
   author       = {Ocheşeanu, Radu},
   title        = {Monedele basileului Moskon aflate
                   în colecţiile Muzeului de arheologie Constanţa},
   journaltitle = {Pontica},
   date         = {1970},
   pages        = {125--129},
   volume       = {III},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

MWE 中的输出是相同的。

相关内容