使用 bstctlcite 时从 IEEE 参考文献中删除波浪符号 (~)

使用 bstctlcite 时从 IEEE 参考文献中删除波浪符号 (~)

我发现了 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 个名字,所以它们通常都可以放在一行上。

相关内容