我对 LaTex 和 ISMAR 论文的风格指南有疑问。
他们指出:
引用参考文献时,不要将参考文献作为句子宾语;例如,错误:“In [4] the authors describe . . . ”,正确:“Lorensen and Cline [4] describe . . . ”
不幸的是,他们似乎并没有自动化这一过程。
我试图编写一个命令,以便当有人写入例如时\citeISMAR{authorYEAR}
它将直接转换为:“作者等人 [1] 得出结论 [...]”而\cite{authorYEAR}
不是将其变成“[1]得出结论[...]”。但我对 LaTex 的了解还不足以至少评估这样的事情是否有可能。
我尝试了,
\newcommand{citeISMAR}[1]{\citeauthor{#1} \cite{#1}}
但似乎完全错误。我首先需要一个命令来获取引用作者的姓名,以便将其包括在内。类似于
\newcommand{citeAuthorName}[1]{\cite{#1}.author}
。
他们的模板似乎使用:
\usepackage{cite}
和书目样式:
\bibliographystyle{abbrv-doi-hyperref-narrow}
我研究过该natbib
包可用于实现这样的事情,但我不确定是否要将其包括在内,因为它可能会在我不注意的情况下改变一些东西。
由于团队中有人不太熟悉 LaTex,因此最好自动化这个过程并只提供一个命令,如 \cite{}。
我将非常感激任何关于如何开始我的研究以实现这一目标的帮助和建议。
答案1
如果您使用,biblatex
您可以使用该命令\citeauthor{}
来获取作者。我创建的命令\newcommand{\AuthorCite}[1]{\citeauthor{#1} \cite{#1}}
似乎运行良好。以下是输出:
以下是代码:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{biblatex}
\addbibresource{sample.bib}
\newcommand{\AuthorCite}[1]{\citeauthor{#1} \cite{#1}}
\begin{document}
\AuthorCite{einstein} concludes that [...]
\printbibliography
\end{document}
以及sample.bib
文件:
@article{einstein,
author = "Albert Einstein",
title = "{Zur Elektrodynamik bewegter K{\"o}rper}. ({German})
[{On} the electrodynamics of moving bodies]",
journal = "Annalen der Physik",
volume = "322",
number = "10",
pages = "891--921",
year = "1905",
DOI = "http://dx.doi.org/10.1002/andp.19053221004"
}