我发现了 IEEE 将其作为IEEEtran 类。具体来说,我使用ctlmax_names_forced_etal
选项来缩短一长串作者姓名。我的文档是为会议撰写的,所以我使用的是 ieeeconf.cls,而不是 IEEEtran.cls。我不得不将以下内容添加到我的序言中(注意,取自这里,因为 IEEEtrans 文档中的示例给了我一个错误“ \bstctlcite 的使用与其定义不匹配。
\bstctlcite{"):
\makeatletter
\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
\def\@bstctlcite[#1]#2{\@bsphack
\@for\@citeb:=#2\do{%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
\@esphack}
\makeatother
减少姓名数量效果很好,但它也使作者姓名中出现了波浪符号 (~),即,A.~Nother et al.
我该如何去掉波浪符号呢?
这个问题与如何删除引文中不需要的波浪号?特别是标题,但它有不同的答案,所以我不认为它是重复的。
答案1
答案就在 中的其他选项中bstctlcite
。我从 IEEEtrans 文档中获取了“默认选项”:
@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLuse_article_number = "yes",
CTLuse_paper = "yes",
CTLuse_forced_etal = "no",
CTLmax_names_forced_etal = "10",
CTLnames_show_etal = "1",
CTLuse_alt_spacing = "yes",
CTLalt_stretch_factor = "4",
CTLdash_repeated_names = "yes",
CTLname_format_string = "{f.˜}{vv˜}{ll}{, jj}",
CTLname_latex_cmd = ""
CTLname_url_prefix = "[Online]. Available:"
}
并修改了CTLuse_forced_etal = "yes"
和CTLmax_names_forced_etal = "3"
。波浪号来自CTLname_format_string
,我将其修改为:CTLname_format_string = "{f. }{vv }{ll}{, jj}"
存在某人的姓名首字母和名字被分成多行的风险,但由于我限制只写 3 个名字,所以它们通常都可以放在一行上。