关于如何修复-----
bibtex 中相同作者姓名的显示问题,有很多问题(有答案)。但是我仍然有问题!
我的 bib 文件包含
@IEEEtranBSTCTL{bstctl:nodash,
CTLdash_repeated_names = "no",
}
@inproceedings{Ebrahimi09,
author = {E. Ebrahimi and others},
title = {Coordinated control of multiple prefetchers in multi-core systems},
booktitle = {MICRO-42},
year = {2009},
pages = {316-326},
}
@inproceedings{Ebrahimi09_2,
author = {E. Ebrahimi and others},
title = {Techniques for bandwidth-efficient prefetching of linked data structures in hybrid prefetching systems},
booktitle = {HPCA-15},
year = {2009},
pages = {7-17},
}
但是输出文件看起来像
事实上,更改CTLdash_repeated_names = "no",
为CTLdash_repeated_names = "yes",
没有任何效果!我该如何解决这个问题?
在 .tex 文件中,参考书目以这种方式调用
\documentclass[conference]{IEEEtran}
\section{Introduction}
... works~\cite{Ebrahimi09,Ebrahimi09_2}
\bstctlcite{bstctl:etal, bstctl:nodash, bstctl:simpurl}
\bibliographystyle{IEEEtran}
\bibliography{ref}
\end{document}
更新
我有一个脚本(在 Windows 中)运行以下命令
:: Run pdflatex -> bibtex -> pdflatex -> pdflatex
pdflatex %2 --file-line-error-style
bibtex %2
:: If you are using multibib the following will run bibtex on all aux files
:: FOR /R . %%G IN (*.aux) DO bibtex %%G
pdflatex %2 --file-line-error-style
pdflatex %2
答案1
添加
@IEEEtranBSTCTL{bstctl:nodash,CTLdash_repeated_names =“否”,}
在我的 .bib 文件的开头对我有用。我使用的是 IEEE 交易格式。
答案2
您的代码中必须是第一个引用命令。如果在调用之前发出了\bstctlcite
任何其他命令,它将不起作用。\cite
\bstctlcite
\bstctlcite
不做任何修改 — 它不会添加任何条目或影响参考书目的编号,也不会在正文中放置任何引用编号。其使用有两个主要限制:
对于未排序的 BibTeX 样式,它必须放在要影响的任何条目之前。因为用户几乎总是希望将更改应用于所有参考书目条目,所以一个好的位置就是在之后
\begin{document}
。对于排序样式,控制条目将自动被赋予一个排序键值,该值会将它们放在参考文献的开头。如果不希望这样,可以手动为控制条目提供一个key
字段,该字段的值将导致所需的排序位置。操作是“一次性的”。也就是说,同一个控制条目不能再次使用(在同一个参考书目中)。但是,可以调用使用不同键名的另一个控制条目。此行为与 BibTeX 允许多次引用参考文献的方式直接相关,但仍然只在参考书目中产生一个条目。
因此
\documentclass[conference]{IEEEtran}
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@IEEEtranBSTCTL{bstctl:nodash,
CTLdash_repeated_names = "no",
}
@inproceedings{Ebrahimi09,
author = {E. Ebrahimi and others},
title = {Coordinated control of multiple prefetchers in multi-core systems},
booktitle = {MICRO-42},
year = {2009},
pages = {316-326},
}
@inproceedings{Ebrahimi09_2,
author = {E. Ebrahimi and others},
title = {Techniques for bandwidth-efficient prefetching of linked data structures in hybrid prefetching systems},
booktitle = {HPCA-15},
year = {2009},
pages = {7-17},
}
\end{filecontents}
\begin{document}
\bstctlcite{bstctl:etal, bstctl:nodash, bstctl:simpurl}
\section{Introduction}
... works~\cite{Ebrahimi09,Ebrahimi09_2}
\bibliographystyle{IEEEtran}
\bibliography{\jobname}
\end{document}
按预期工作
答案3
如果有人没有使用 IEEEtran 模板但遇到同样的问题,只需在 `.bib` 文件的开头添加
@IEEEtranBSTCTL{bstctl:nodash,
CTLdash_repeated_names = "no",
}
然后,在 `.tex` 文件中,添加包 `\usepackage{IEEEtrantools}`。最后,在 `\begin{document}` 之后,下一行必须是 `\bstctlcite{bstctl:nodash}`
例子:
\usepackage{IEEEtrantools}
<br>% ...
<br>\begin{document}
<br>\bstctlcite{bstctl:nodash}
<br> %your file content
<br> %your file content