Natbib 引用缩写

Natbib 引用缩写

我有一个需要引用的网页,其作者是一家公司(未指定真实人物)。其全名是结构化信息标准促进组织,简称 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}

在此处输入图片描述

相关内容