防止引用中出现重复句号

防止引用中出现重复句号

我使用 natbib 在文本中进行引用,有时这些引用以句号结尾。当句号对应于句子结尾时,很容易插入重复的句号。MWE:

\documentclass{article}
\usepackage[authoryear]{natbib}
\begin{document}

I want to cite \cite{Doe14}, but if I put the citation at the end of a sentence, I get an extra period, as in \citeauthor{Doe14}.

\begin{thebibliography}{1}
\bibitem[{{Doe et~al.}(2014)}]{Doe14}
{Doe}, J. and collaborators 2014, Nature, 123, 321
\end{thebibliography}
\end{document}

现在我当然可以删除句子末尾的句号,但每次我重读时,我都认为我漏了一个句号,然后重新添加。是否可以创建一个“可选”标点符号,仅当前面的字符不是相同的标点符号时才存在?

答案1

您似乎正在“手动”输入参考书目(除非您这样做只是为了创建您的 MWE,当然这bibtex是可能的(因为您已经标记了您的问题)。

无论如何,尽管我讨厌用“使用一些你不使用的参考书目包”来回答问题,但我还是要坚持说,这是一个很好的例子biblatex,它完全符合你的想法。毫无疑问,这表明,如果你愿意,你可以自己重新创建它;但代码非常复杂,至少可以这么说:如果你有几天的空闲时间可以修改一下,可以看看biblatex2.sty。关于的 (许多) 有用之处之一biblatex就是它在这种情况下对标点符号的智能处理。

以下是 MWE:

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Doe14,
  author = "Doe, J. and others",
  title  = "Title",
  journaltitle = "Nature",
  volume = {123},
  pages = {321},
  date = {2014},
}
\end{filecontents}
\usepackage[natbib,style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}

I want to cite \cite{Doe14}, and if I put the citation at the end of a sentence, 
I \emph{don't} get an extra period, as in \citeauthor{Doe14}. As you can see, 
we get only one full stop. But we still get it if we don't add the period 
ourselves: \citeauthor{Doe14} (which is correct: because the dot at the end 
of ``et al.'') is there because it's an abbreviation).


\printbibliography
\end{document}

这将产生以下内容:

输出图像

当然,此处的实际书目输出与您的情况不同(它是“标准”biblatex样式authoryear);但如果您不喜欢,还有其他作者/年份样式可供选择。authordate特别是,请查看 APA 样式和带有选项的芝加哥样式:它们是非常稳定的作者/年份样式。

亚太心理学协会

APA 格式输出

芝加哥authordate)(文中给出“Doe et al. 2014”)

芝加哥作者日期风格

natbib(我在这里添加了选项,biblatex因为您正在使用natbib,但实际上它是不必要的,可能不推荐:biblatex有自己的一组命令。正如您所见,该natbib选项仅产生表面相似的界面:实际输出由控制biblatex。)

相关内容