我在 LaTeX 中编写参考书目时遇到了问题。我使用了 Elsevier 的模板,其样式为:\bibliographystyle{model3-num-names}
。
结果如下。
Rahul、Sandeep G、Chakraborty D、Dutta A。受横向冲击的混合层压板的多目标优化。复合结构 2006;73(3):360-9。
运行以下命令时,第一作者后的逗号之间有一个空格:
@article{Rahul|Chakraborty20052003,
title = "Optimization of {FRP} composites against impact induced failure using island model parallel genetic algorithm",
journal = "Composites Science and Technology ",
volume = "65",
number = "13",
pages = "2003 - 2013",
year = "2005",
note = "",
issn = "0266-3538",
author = "Rahul and D. Chakraborty and A. Dutta",
keywords = "Hybrid composite laminate",
keywords = "Optimization",
keywords = "Island model parallel genetic algorithm",
keywords = "Finite element method",
keywords = "Contact impact "
}
请注意,第一位作者的名字只是 Rahul。当我在“作者”行尝试以下替代方案时,结果并无不同:
author = "{Rahul} and D. Chakraborty and A. Dutta",
author = {{Rahul} and D. Chakraborty and A. Dutta},
author = "{} Rahul and D. Chakraborty and A. Dutta",
author = "{}Rahul and D. Chakraborty and A. Dutta",
author = "Rahul{} and D. Chakraborty and A. Dutta",
答案1
一个非常丑陋的黑客:
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Rahul|Chakraborty20052003,
author = "Rahul, {\relax} and Chakraborty, D. and Dutta, A.",
title = "Optimization of {FRP} composites against impact induced failure using island model parallel genetic algorithm",
journal = "Composites Science and Technology ",
volume = "65",
number = "13",
pages = "2003-2013",
year = "2005",
note = "",
issn = "0266-3538",
keywords = "Hybrid composite laminate",
keywords = "Optimization",
keywords = "Island model parallel genetic algorithm",
keywords = "Finite element method",
keywords = "Contact impact",
}
\end{filecontents*}
\documentclass{elsarticle}
\makeatletter
\def\xfnm[#1]{%
\def\xfnmarg{#1}\def\xfnmrelax{ {\relax}.}%
\ifx\xfnmarg\xfnmrelax
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{,\@gobble}%
{\unskip,\space#1}%
}
\makeatother
\begin{document}
\cite{Rahul|Chakraborty20052003}
\bibliographystyle{model3-num-names}
\bibliography{\jobname}
\end{document}
书目样式用于\xfnm
排版首字母;我重新定义了它,如果名字是{\relax}
,则条目基本上会被忽略并且只会产生一个逗号。