\citenum 带方括号

\citenum 带方括号

我使用上标引用样式,有时我需要在文本中打印方括号中的引用编号,如[6]。我读到我可以使用,\citenum[\citenum{myref}]在数字前留出一些大空格[ 6]。有什么办法可以很好地实现这一点吗?

编辑。以下是我的natbib选择:

 \usepackage[square, comma, sort&compress,authoryear]{natbib}
 \bibpunct{[}{]}{,}{s}{}{;}

答案1

以下尝试(重新定义\citenum)删除了大部分(?)间距。抱歉没有提供真正的解决方案,但natbib内部原理并不想深入研究。

\documentclass{article}

\usepackage[square,comma,sort&compress,authoryear]{natbib}
\bibpunct{[}{]}{,}{s}{}{;}

\makeatletter
\DeclareRobustCommand\citenum
   {\begingroup
%      \NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse\let\textsuperscript\NAT@spacechar% DELETED
     \NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse\let\textsuperscript\relax% NEW
     \NAT@citexnum[][]}
\makeatother

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\begin{document}

Some text \citep{A01}.

[\citenum{A01}]

\bibliographystyle{plainnat}
\bibliography{\jobname}

\end{document}

答案2

我发现插入几个负空格(\!)效果很好。例如

These are outlined in an excellent review by Foo [\!\!\citenum{Foo2012}]; however, we choose to...

从理解问题的角度来看,这可能不是一个非常优雅的解决方案,但它很简洁!

答案3

对我来说,最简单的方法就是进入 natbib.sty。首先将其复制到本地 latex 文件夹,例如

 ~/texmf/tex/latex/.

找到这条线

\DeclareRobustCommand\citenum

并更换零件

@parfalse

@partrue

完毕。

答案4

我知道您正在使用 natbib 的选项;但是,您是否尝试过使用 revtex 作为您的 documentclass?使用与 lockstep 相同的示例,我可以写:

\documentclass[aip]{revtex4-1}    
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
@misc{B01,
  author = {Author, B.},
  year = {2001},
  title = {Beta},
}
\end{filecontents}

\begin{document}
Some text with superscript citation.~\citep{A01}

Another text with in-line citation.~[\onlinecite{B01}]

\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}

相关内容