我有一个需要引用的网页,其作者是一家公司(未指定真实人物)。其全名是结构化信息标准促进组织,简称 OASIS。例如,我希望在引用中包含 OASIS(OASIS,2006),但在参考文献列表中包含完整的公司名称。
我试过
author = "{OASIS}, {Organization for the Advancement of Structured Information Standards}"
在引用中打印 OASIS,但在参考文献列表中打印“OASIS,O。”。如果我这样做
author = "{OASIS, Organization for the Advancement of Structured Information Standards}"
然后我在参考文献列表中找到了全名,但也在引用中找到了全名,看起来很丑。
如何在引用中添加 OASIS 并在参考文献列表中添加结构化信息标准促进组织?
我需要的另一个例子是万维网联盟。我希望像 W3C 那样引用它,例如:“(W3C, 2009)”,但在参考文献列表中使用全名:“万维网联盟”。
答案1
这是一种方法,需要对文件author
中的字段进行特殊格式化.bib
。
\begin{filecontents*}{\jobname.bib}
@article{oasis,
author={{\acroauthor{Organization for the Advancement of Structured Information Standards}{OASIS}}},
title={Some title},
journal={J. Something},
year={2012},
}
\end{filecontents*}
\documentclass{article}
\usepackage[authoryear]{natbib}
\usepackage{etoolbox}
\newif\ifabbreviation
\pretocmd{\thebibliography}{\abbreviationfalse}{}{}
\AtBeginDocument{\abbreviationtrue}
\DeclareRobustCommand\acroauthor[2]{%
\ifabbreviation #2\else #1 (\mbox{#2})\fi}
\begin{document}
Here it is \citep{oasis}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
注意:filecontents*
只是为了保持示例的独立性;如果您只想要参考部分中的扩展名称,请更改
#1 (\mbox{#2})\fi
进入
#1\fi
重要的:不要忘记周围的附加括号\acroauthor{...}{...}
,它们对于按作者正确排序至关重要。
可以修改此设置,以在引用中第一次使用首字母缩略词时将其展开。如果您希望在第一次使用时也显示首字母缩略词以及展开的文本,请删除%
标记行中的第一个<-----
,这通常是为了帮助读者。
\begin{filecontents*}{\jobname.bib}
@article{oasis,
author={{\acroauthor{Organization for the Advancement of Structured Information Standards}{OASIS}}},
title={Some title},
journal={J. Something},
year={2012},
}
\end{filecontents*}
\documentclass{article}
\usepackage[authoryear]{natbib}
\usepackage{etoolbox}
\newif\ifabbreviation
\pretocmd{\thebibliography}{\abbreviationfalse}{}{}
\AtBeginDocument{\abbreviationtrue}
\DeclareRobustCommand\acroauthor[2]{%
\ifabbreviation
\ifcsname acroused@#2\endcsname
#2%
\else
#1%
%~(\mbox{#2})% <----
\expandafter\gdef\csname acroused@#2\endcsname{}%
\fi
\else
(\mbox{#2})%
\fi
}
\begin{document}
Here it is \citep{oasis}
A second time \citep{oasis}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}