我试图在我的文章中保持作者年份的引用风格(使用citep
, ),但有时由于空间限制,citet
我需要在 tikz 图表中这样做。\citenum{}
\usepackage[authoryear,square]{natbib}
\bibliographystyle{plainnat}
例如,这里方括号中的数字使用 制作\citenum{someref}
,而标题中的 ref 使用 制作\citet[][Figure 9]{goodfellow2016}
:
然而,参考文献列表中缺少数字:
我真正想要的是这个,但我无论如何也想不出如何在保持如上所示的作者年份风格的同时实现这一点:
我发现最接近的答案是这个:https://tex.stackexchange.com/a/17059/155844
然而,我不知道如何获得可选参数工作(例如可选参数see
和Figure 9
= \citet[see ][Figure 9]{goodfellow2016}
> see Goodfellow [2016, Figure 9]
)。到目前为止,我得到了类似的东西(但这不起作用):
\setcitestyle{numbers}
\renewcommand{\citet}[3]{#1\citeauthor{#3}~[\citeyear{#3}, #2]}
我想到另一个选择是直接编辑 plainnat 样式以将参考编号添加到每个条目的开头,但我找不到有关如何执行此操作的资源。
答案1
正如我在评论中提到的,我认为在文档中如此随意地混合引用样式并不是一个好主意。如果说大多数引用和参考书目样式都遵循一个重要原则,那就是一致性。
在参考书目样式中引入数字的问题在于,对于其他作者年份引用,数字会分散人们对参考书目中真正重要内容的注意力:作者和年份。(公平地说,这两者已经有点难以找到plainnat
:年份在最后,作者姓名没有倒置,因此条目以名字开头,而不是引用中的姓氏。)
由于natbib
可以轻松切换numbers
和,authoryear
因此可以切换参考书目,但不能切换引文。我们只需要更改两个内部宏\@biblabel
和\@bibsetup
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[authoryear,square]{natbib}
\bibliographystyle{plainnat}
\makeatletter
\AtBeginDocument{%
\let\@biblabel\NAT@biblabelnum
\let\@bibsetup\NAT@bibsetnum}
\makeatother
\begin{document}
\cite{incollection-full,incollection-minimal}
\citenum{incollection-full}
\bibliography{xampl}
\end{document}