我可以修改以下 bibtex 条目以避免重复作者姓名,而无需定义 @string 吗?
@misc{key,
author = "Joe Blogs",
title = "Title",
year = "2014",
note = "Joe Blogs ...."
}
我知道我可以做以下事情:
@string { Blogs = "Joe Blogs" }
@misc{key,
author = Blogs,
title = "Title",
year = "2014",
note = Blogs # " ...."
}
但这似乎有点小题大做,因为我必须使用@string 来定义博客。
鉴于我已经将“Joe Blogs”定义为“key”的作者字段,我可以以某种方式引用现有值吗?
更新。我正在寻找“标准”解决方案,即与比博特工具,所以 LaTeX 解决方案很有趣,但对我没用。(我实际上并没有使用 bibtex 工具,而是使用了 PHP bibtex 解析器。但这与这个问题的目的基本无关,因为我使用的 PHP bibtex 解析器的设计规范与 bibtex 工具相同。)
回答。答案似乎是不:bibtex 字段不能像变量一样被引用。
答案1
仅靠 BibTeX 是不够的。
如果你使用biblatex
你可以:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@BOOK{A1,
author = {Author One},
title = {Alpha},
publisher = {Publisher A},
year = {2000},
}
@BOOK{B2,
author = {Author Two},
title = {Beta},
publisher = {Publisher B},
year = {2001},
}
\end{filecontents*}
\usepackage{biblatex}
\DeclareCiteCommand{\citeAuthor}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\usebibmacro{author}}
{\multicitedelim}
{\usebibmacro{postnote}}
\addbibresource{\jobname}
\begin{document}
Author of \cite{A1} is \citeauthor{A1} (\citeAuthor{A1}) in \citeyear{A1}.
Author of \cite{B2} is \citeauthor{B2} (\citeAuthor{B2}) in \citeyear{B2}.
\printbibliography
\end{document}