根据natbib
手册,您可以通过包选项来设置选项,也可以通过将它们提供给来设置选项\setcitestyle
,但它们不会给出相同的结果
尝试使用下面的 MWE
\usepackage{natbib}
\setcitestyle{
super,
numbers,
square,
}
或者
\usepackage[super,numbers,square]{natbib}
后者给了我想要的(相当于\textsuperscript{[1]}
),但是在我们试图解决的情况下,我们不能直接给出选项natbib
(我知道我可以先手动加载natbib,但这不是重点,两种解决方案都应该给出相同的结果)。
知道为什么吗?
\listfiles
\documentclass[a4paper]{article}
\usepackage{filecontents}
\begin{filecontents*}{xxx.bib}
\@article{xxx,
title={My Title},
author={An Author},
year={2017},
pages={92--93},
publisher={My Publisher}
}
\end{filecontents*}
% shouldn't the below be equivalent to
%\usepackage[super,numbers,square]{natbib}
\usepackage{natbib}
\setcitestyle{
super,
numbers,
square,
}
\bibliographystyle{plainnat}
\begin{document}
test\cite{xxx}
\bibliography{xxx}
\end{document}
答案1
回答我自己的问题
- 包选项和 中的选项的
\setcitestyle
实现方式不同,numbers
包选项设置numbers
为 true,但numbers
选项\setcitestyle
设置numbers
为 true 并super
明确设置为错误的! \setcitestyle{...}
使用其自己的低级逗号解析器,并且它不会删除关键字开头或结尾的空格。
所以
[super,numbers,square]
相当于
\setcitestyle{numbers,square,super}
super
必须最后走。
正如约瑟夫提到的,numbers
这里可能不需要,但也不会造成损害。