我想知道是否有可能破解我自己的版本,citet
即使对于数字参考样式也可以。
基本上我想要的\citet{foo}
结果是AuthorName~\cite{foo}
,从参考书目中查找作者姓名,打印它,然后像往常一样打印数字引用。
这可能吗?我基本上是想管理这种情况:我有一个以作者年份格式制作的大型文档,而不必手动写出作者姓名。
答案1
\citet
已经可以使用数值natbib
兼容样式
\documentclass{article}
\usepackage[numbers]{natbib}
\begin{document}
\citet{article-full}
\bibliography{xampl}
\bibliographystyle{plainnat}
\end{document}
就像biblatex
选择natbib
\documentclass{article}
\usepackage[natbib=true]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\citet{aksin}
\printbibliography
\end{document}
但是 bibtex 不会公开除此以外的任何内容,.bbl
因此编写自己的函数不仅仅是一个 TeX 问题,还涉及解析.bib
文件以及.tex
或.aux
文件。usebib
可能是存在的最接近的实体,但至少仍然需要对作者字段进行一些非平凡的解析。
在这种情况下,你需要使用 ,plainurl.bst
这似乎是 的一种轻微修改形式,以plain
兼容 URL
natbib
有自己的版本plain
( plainnat
),也与 URL/DOI 兼容,在同一个模板中使用时类似但不完全相同
DOI 的外观应该很容易修补,\newcommand{\doi}[1]{\path{doi:#1}}
但其他方面(我认为由于加载natbib
需要对生成的文件进行修补以匹配外观。.bbl
生成的文件(这可能是出版商更关心的,但如果是这样,他们也可能会对不熟悉的文件感到犹豫\citet
)也类似但不完全相同。
AuthorName~\cite{foo}
对于个人作者来说,没有什么比硬编码或在提交时编写\citet{foo}
和使用正则表达式进行替换更省时了AuthorName~\cite{foo}
。