我知道这个问题之前已经被多次提及过,但我发现虽然答案有些帮助,但却没有解决我的问题。
我正在撰写论文,希望在使用 et al 之前控制参考文献中出现的作者数量。我采用 ieeetr 书目样式和 bibtex。我安装了 ieeetrantools 以在 tex 文档中启用 \bstctlcite 命令,并在书目中包含了 @IEEEtranBSTCTL 条目。但是,我遇到了两个问题;\bstctlcite 导致我的书目开头出现一个空条目,尽管更改了 @IEEEtranBSTCTL 中的设置,但作者数量根本没有被截断。
下面是 tex 文档的一个最小示例。请注意,我使用的是我所在大学使用的自定义样式包 - 我发现这不是问题,因为当我更改为 IEEETran 样式时问题仍然存在。我还包含了我正在使用的所有包,以防其中任何一个引起冲突。
\documentclass[12pt,twoside]{muthesis}
\usepackage{a4}
\usepackage{epsfig}
%\usepackage{path}
\usepackage{amsfonts}
\usepackage{duckuments}
\usepackage{amssymb}
\usepackage{ieeetrantools}
\usepackage{amsmath,mathrsfs,psfrag}
\usepackage{pst-all}
\usepackage{fancyhdr}
\usepackage{color}
\usepackage{hyperref}
\usepackage{siunitx}
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage[numbers,sort&compress]{natbib}
\begin{document}
\bstctlcite{IEEEexample:BSTcontrol}
\cite{Filippetto_1}
\bibliography{test}
\bibliographystyle{ieeetr}
\end{document}
这是一个示例 .bib 文件
@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLuse_forced_etal = "yes",
CTLmax_names_forced_etal = "6",
CTLnames_show_etal = "12"
}
@article{Filippetto_1,
author = {Filippetto, D. and Bellaveglia, M. and Castellano, M. and Chiadroni, E. and Cultrera, L. and {Di Pirro}, G. and Ferrario, M. and Ficcadenti, L. and Gallo, A. and Gatti, G. and Pace, E. and Vaccarezza, C. and Vicario, C. and Bacci, A. and Rossi, A. R. and Serafini, L. and Cianchi, A. and Marchetti, B. and Giannessi, L. and Labat, M. and Quattromini, M. and Ronsivalle, C. and Marrelli, C. and Migliorati, M. and Mostacci, A. and Palumbo, L. and Serluca, M.},
journal = {Physical Review Special Topics - Accelerators and Beams},
pages = {092804},
title = {{Phase space analysis of velocity bunched beams}},
volume = {14},
year = {2011}
}
如果相关的话,我正在使用 TeXStudio。提前感谢您的帮助!
答案1
参考书目样式ieeetr
确实很古老 - 也就是说,至少有 34 年的历史了。(是的,一些精选的参考书目样式,例如plain
、abbrv
和,ieeetr
几乎和 LaTeX 和 TeX 本身一样古老......)鉴于其悠久的历史,该ieeetr
样式根本不知道该如何处理包\bstctlcite
提供的宏IEEEtrantools
。
您应该切换到IEEEtran
参考书目样式并运行完整的重新编译循环:LaTeX、BibTeX,然后再运行两次 LaTeX。
顺便说一下, 的值CTLnames_show_etal
不应超过CTLmax_names_forced_etal
。因此,请将其更改CTLnames_show_etal = "12"
为CTLnames_show_etal = "6"
。