使用 IEEEtran 限制参考文献中的作者数量

使用 IEEEtran 限制参考文献中的作者数量

我尝试通过在参考文献中出现的作者数量等于或大于 3 时添加“et al.”来限制作者数量。

根据文档(在第 8 页),您必须在 .bib 文件中定义要更改的字段,如下所示:

@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLmax_names_forced_etal = "3"}

然后,您必须在 .tex 文档中放入以下行:

\bstctlcite{IEEEexample:BSTcontrol}

我完成了这两件事,并且编译成功。但是,输出仍然显示参考文献中有超过 3 位作者(没有参考文献上写有“et al.”)。

有人有使用 IEEEtran.bst 和 IEEEtran.cls 的经验吗?我做错了什么?

答案1

似乎您没有包含完成此工作所需的所有字段:

CTLuse_forced_etal 是必须的表示您确实想要缩短作者列表。 CTLmax_names_forced_etal在缩短列表之前给出最大作者数。 CTLnames_show_etal允许您指定缩短列表时将给出多少个名称。

您的 bib-file 条目可能如下所示:

@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLuse_forced_etal       = "yes",
CTLmax_names_forced_etal = "3",
CTLnames_show_etal       = "2" }

这将限制作者列表超过 3 个,只打印前 2 个作者,然后打印等人

最后,你需要\bstctlcite{IEEEexample:BSTcontrol}在文档中包含在引用任何参考文献之前(最好放在后面\begin{document})。如果它出现在您插入参考书目的地方下面,则不会产生正确的效果。

最小工作示例:

\documentclass[]{IEEEtran}

\usepackage{lipsum} % For some dummy text
\usepackage{filecontents} % To make the bib-file

\begin{filecontents}{\jobname.bib}
@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
  CTLuse_forced_etal       = "yes",
  CTLmax_names_forced_etal = "3",
  CTLnames_show_etal       = "2" 
}
@article{paperOne,
  author = "Author First and Author Second and Author Third and Author Fourth",
  title = "Paper One Title",
  journal = "Awesome Journal",
  pages = "111--115",
  year = 2013
}
@incollection{paperTwo,
  author = "Author First and Author Second and Author Third",
  title = "Paper Two Title",
  booktitle = "Proc. of Collection",
  pages = "222--225",
  year = 2013
}
\end{filecontents}

\begin{document}
\bstctlcite{IEEEexample:BSTcontrol}

% Paper text
\lipsum[4]
\nocite{paperOne,paperTwo} % Cite the references you want to include...

% Insert bibliography
\bibliographystyle{IEEEtran}
\bibliography{\jobname}

\end{document}

这将导致以下结果(请注意,第一个参考文献有 4 位作者减少到 2 位,而第二个参考文献可以显示所有 3 位作者,正如指定的)。

参考书目示例

答案2

致力于 Sharelatex。

@IEEEtranBSTCTL 确实需要上述帖子中的至少前两个字段值(请参阅 Michael Shell 的文档)。我正在使用 cite 包,没有冲突。

相关内容