文章标题以问号结尾

文章标题以问号结尾

在以下 MWE 中

\documentclass{article}
\usepackage{filecontents}
\usepackage[%
backend=biber,
style=numeric,
giveninits=true,
sorting=nyt,
]{biblatex}
\addbibresource{\jobname.bib}

\begin{filecontents}[force]{\jobname.bib}
@article{key,
  author = {Author, A.},
  title = {Title?},
  year = {2021},
  journal = {Journal}
}

@article{key2,
  author = {Author, B.},
  title = {Title},
  year = {2021},
  journal = {Journal}
}
 
\end{filecontents}

\begin{document}

\cite{key}, \cite{key2}

\printbibliography

\end{document}

在此处输入图片描述

可以看出以问号结尾的标题在引号后面没有句号,而没有问号的标题后面有一个句号。以引号结尾的标题可以加句号吗?

答案1

这是biblatex的标点符号跟踪器,它的作用是避免不必要的重复标点符号。通常,该功能可避免由字段值和biblatex生成的标点符号重复引起的标点符号冲突。

这里可以说这个功能有些过了,特别是因为引号提供了分隔双标点的视觉屏障。

biblatex解决方案一是“隐藏”标点符号跟踪器中的问号。要么直接在.bib条目中,\@?

\documentclass{article}
\usepackage[
  backend=biber,
  style=numeric,
  giveninits=true,
  sorting=nyt,
]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{key1,
  author  = {Author, A.},
  title   = {Title?\@},
  year    = {2021},
  journal = {Journal},
}
@article{key2,
  author  = {Author, B.},
  title   = {Title},
  year    = {2022},
  journal = {Journal},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Lorem \autocite{key1,key2}

\printbibliography
\end{document}

A. 作者。“标题?”。在:期刊(2021 年)。

或全局地在所有title用引号括起来的字段中,对字段格式进行适当的重新定义,添加\@

\documentclass{article}
\usepackage[
  backend=biber,
  style=numeric,
  giveninits=true,
  sorting=nyt,
]{biblatex}

%\DeclareFieldFormat{title}{\mkbibemph{#1\@}}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{\mkbibquote{#1\@}}
%\DeclareFieldFormat
%  [suppbook,suppcollection,suppperiodical]
%  {title}{#1\@}

\begin{filecontents}{\jobname.bib}
@article{key1,
  author  = {Author, A.},
  title   = {Title?},
  year    = {2021},
  journal = {Journal},
}
@article{key2,
  author  = {Author, B.},
  title   = {Title},
  year    = {2022},
  journal = {Journal},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Lorem \autocite{key1,key2}

\printbibliography
\end{document}

A. 作者。“标题?”。在:期刊(2021 年)。

另一种解决方案是通常允许问号和感叹号后面跟一个句号。但这可能会导致在无引号或由于其他原因不需要引号的情况下出现不良的标点冲突。(有关详细信息,请\DeclarePunctuationPairs参阅Biblatex 标点符号识别

\documentclass{article}
\usepackage[
  backend=biber,
  style=numeric,
  giveninits=true,
  sorting=nyt,
]{biblatex}

\DeclarePunctuationPairs{period}{.?!}

\begin{filecontents}{\jobname.bib}
@article{key1,
  author  = {Author, A.},
  title   = {Title?},
  year    = {2021},
  journal = {Journal},
}
@article{key2,
  author  = {Author, B.},
  title   = {Title},
  year    = {2022},
  journal = {Journal},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Lorem \autocite{key1,key2}

\printbibliography
\end{document}

另请参阅最近的使用 biblatex ieee 样式将以问号结尾的收藏项目标题后的字母大写

相关内容