我见过使用 BibTeX 键作为引用键,它非常接近我想要的,但并没有完全实现——首先,我无法让 biblatex 运行我的文档,其次
我想要实现的是显示参考列表,而不是参考编号(或作者年份对,但我使用super
natbib 样式)键,如\cite(key)
。
这部分是调试问题,因此有标签,但部分是因为我需要将一些现有工作移植到 word。我对这个要求没有影响,我已经编写了一些东西来解析 .tex(不包括方程式),让我拥有内联的引用键 - 因此我想获得一个参考文献部分,我可以将其复制到 word 文档中以供共享编辑。
编辑-有关 biblatex 的更多详细信息 我看到的错误是:
! LaTeX Error: Command \bibhang already defined.
Or name \end... illegal, see p.192 of the manual.
如果我试图\usepackage{natbib}
修复这个问题,我会破坏一些自定义引用命令我补充说。用一个简单的替换那些\cite
就可以编译了。
上面链接的最佳答案没有多大帮助,生成了新的密钥,这就是为什么我之前没有花太多精力让它运行。
编辑2:以下编译,但生成新的密钥。
\documentclass[preview]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{preview}
\usepackage[backend=bibtex,style=alphabetic,sorting=debug]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Jones_article1,
author = {A. . Jones and C. D. Smith},
title = {article1},
}
@article{Bloggs_article2,
author = {E. F. Bloggs},
title = {article title 2}
journal = {Journal of stuff},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
foo\cite{Jones_article1} and bar\cite{Bloggs_article2}
\printbibliography
\end{document}
编辑3:这无法运行:
\documentclass[preview]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{preview}
\usepackage[backend=bibtex,natbib=true,style=alphabetic,sorting=debug]{biblatex}
\usepackage{filecontents}
\DeclareFieldFormat{labelalpha}{\thefield{entrykey}}\DeclareFieldFormat{extraal??pha}{}
\begin{filecontents}{\jobname.bib}
@article{Jones_article1,
author = {A. . Jones and C. D. Smith},
title = {article1},
}
@article{Bloggs_article2,
author = {E. F. Bloggs},
title = {article title 2}
journal = {Journal of stuff},
}
\end{filecontents}
\addbibresource{\jobname.bib}
%citenumns provides the reference number for a citation, not superscripted or bracketed
\makeatletter
\newcommand*{\citenumns}[2][]{%
\begingroup
\let\NAT@mbox=\mbox
\let\@cite\NAT@citenum
\let\NAT@space\NAT@spacechar
\let\NAT@super@kern\relax
\renewcommand\NAT@open{}%
\renewcommand\NAT@close{}%
\cite[#1]{#2}%
\endgroup
}
\makeatother
\begin{document}
foo\cite{Jones_article1} and bar ref. \citenumns{Bloggs_article2}
%\bibliographystyle(super)
\printbibliography
\end{document}
而不是给予
! LaTeX Error: \NAT@open undefined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.40 ...} and bar ref. \citenumns{Bloggs_article2}
答案1
如果您想要某些(但不是全部!)natbib
功能,请将选项natbib
或natbib=true
(相同)添加到 的调用中biblatex
。
要更改结果列表中的键,您错过了\DeclareFieldFormat{labelalpha}{\thefield{entrykey}}\DeclareFieldFormat{extraalpha}{}
在 MWE 中添加。您的第二个 bib 条目中也缺少一个逗号。
您的宏\citenumbers
不适用于biblatex
。
以下 MWE 应该运行并帮助您:
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Jones_article1,
author = {A. . Jones and C. D. Smith},
title = {article1},
}
@article{Bloggs_article2,
author = {E. F. Bloggs},
title = {article title 2},
journal = {Journal of stuff},
}
\end{filecontents*}
\documentclass[preview]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{preview}
\usepackage[%
backend=bibtex
,style=alphabetic
,sorting=debug
,natbib % to add some natbib functions, nou all!
]{biblatex}
% change key in bib list
\DeclareFieldFormat{labelalpha}{\thefield{entrykey}}\DeclareFieldFormat{extraalpha}{}
\addbibresource{\jobname.bib}
\begin{document}
foo~\cite{Jones_article1} and bar~\cite{Bloggs_article2}.
\printbibliography
\end{document}