BibTeX:防止在“et al.”引用后换行

BibTeX:防止在“et al.”引用后换行

BibTeX 会在引文后添加空格,例如“et al.”如果该空格出现在行末,年份可以放在下一行。

我认为这在行尾可能会产生误导,因为它可能会被错误地读作是行尾,然后下一行开头的数字看起来很奇怪。

在我看来,这会打断阅读的流程,但我也对你的观点感兴趣。

为了抑制换行,我并没有偷懒,而是在网上搜索解决方案。

我找到了使用的建议\renewcommand*{\nameyeardelim}{\addnbspace},但不幸的是,这在我手中不起作用。

我认为这是因为该\nameyeardelim宏仅由biblatex,而我没有使用(也不能使用,因为我正在通过RStudio预订包裹。

有人能告诉我另一种可能的方法来避免“et al.”引用后的换行吗?

答案1

natbib可以使用

\makeatletter
\renewcommand*{\NAT@spacechar}{~}
\makeatother

或者

\bibpunct[, ]{\unskip~(}{)}{;}{a}{,}{,}

其中,\unskip~(删除括号前的空格,并将其替换为不间断空格。

还将的引用命令\NAT@spacechar插入的其他空格转换为不可拆分的空格,这些空格可能是想要的,也可能是不需要的。如果将上述代码中的natbib替换为 ,则可以看到这些空格的位置。~XXX

解决\bibpunct方案自然会覆盖加载时间选项,例如square和,round并设置其他标点符号。如果您使用特殊样式,则可能需要稍微调整该值。

natbib.sty解释\bibpunct如下

% Alternatively:
% Use \bibpunct with 6 mandatory arguments:
%    1. opening bracket for citation
%    2. closing bracket
%    3. citation separator (for multiple citations in one \cite)
%    4. the letter n for numerical styles, s for superscripts
%        else anything for author-year
%    5. punctuation between authors and date
%    6. punctuation between years (or numbers) when common authors missing
% One optional argument is the character coming before post-notes. It
%   appears in square braces before all other arguments. May be left off.
% Example (and default) \bibpunct[, ]{(}{)}{;}{a}{,}{,}

pdf 文档也有一些相关内容http://mirrors.ctan.org/macros/latex/contrib/natbib/natbib.pdf在第 13 页。

相关内容