用 natibib 制作 `[x]--[y]` 的引用样式

前言

在某些期刊模板中,顺序编码制多个引用会压缩成 [x]--[y] 的样式,这里来实现一下。

正文

kpsewhich natbib.sty 中,我们找到与 compress 有关的命令,最后定位到

\def@NAT@last@yr{--\NAT@penalty}%

可以猜到,-- 是用来连接两个引用的连接号,那么只需要修改它即可。

\documentclass{article}
\usepackage[square,sort&compress,numbers]{natbib}
\bibliographystyle{plain}
\usepackage{xpatch}
\makeatletter
\xpatchcmd\NAT@citexnum{\def@NAT@last@yr{--\NAT@penalty}}{\def@NAT@last@yr{]--[\NAT@penalty}}{}{\fail}
\makeatother
\begin{document}
test\cite{article-full,article-crossref,article-minimal,inbook-minimal}
\bibliography{xampl}
\end{document}

效果图:

当然这种方法并不好,无锤乙醇写了一种更好的方法:《一种特殊的参考文献引用样式的设置》。

文章作者: sikouhjw
文章链接: https://sikouhjw.github.io/2021/10/02/2021-10-02-natbib-compress/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 sikouhjw.github.io
支付宝捐赠
微信捐赠