(1)上面这种形式可能不是学校要求的
(2)如果是需要上面这种形式
(3)gbt7714-2005.bst对于这个模板文件
FUNCTION {format.names} { % String Entry::format_names(String names) {
'namelist := % namelist = names;
namelist num.names$ 'namecount := % namecount = num_names(namelist);
"" % String result = "";
#0 'nameindex := % nameindex = 0;
{nameindex namecount < nameindex #3 < and} { % while ((nameindex < namecount) && (nameindex < 3)) {
nameindex #1 + 'nameindex := % nameindex = nameindex + 1;
nameindex #1 > { % if (nameindex > 1) {
cap.comma * % result = result + cap_comma;
} 'skip$ if$ % }
namelist nameindex "{vv}" format.name$ % String tmp = format_name(namelist, nameindex, "{vv}");
'vonname := % vonname = tmp;
namelist nameindex "{jj}" format.name$ % tmp = format_name(namelist, nameindex, "{jj}");
remove.dots 'jrname := % jrname = remove_dots(tmp);
namelist nameindex "{f}" format.name$ % tmp = format_name(namelist, nameindex, "{f}");
remove.dots % tmp = remove_dots(tmp);
"u" change.case$ 'firstname := % firstname = change_case(tmp, "u");
namelist nameindex "{ll}" format.name$ % tmp = format_name(namelist, nameindex, "{ll}");
"u" change.case$ 'lastname := % lastname = change_case(tmp, "u");
jrname empty$ not { % if (! empty(jrname)) {
jrname * " " * % result = result + jrname + " "
} 'skip$ if$ % }
vonname empty$ not { % if (! empty(vonname)) {
vonname * " " * % result = result + vonname + " "
} 'skip$ if$ % }
lastname empty$ not { % if (! empty(lastname)) {
lastname * " " * % result = result + lastname + " "
} 'skip$ if$ % }
firstname empty$ not { % if (! empty(firstname)) {
firstname * " " * % result = result + firstname + " "
} 'skip$ if$ % }
trim.end % result = trim_end(result);
} while$ % }
nameindex namecount < { % if (nameindex < namecount) {
cap.et.al * % result = result + cap_et_al();
} 'skip$ if$ % }
}
将
"u" change.case$
这些字符删掉
(4)如果上面这种形式不是你需要的
(5)而是需要这种形式
(6)用下面的代码替换掉
FUNCTION {inbook.impl} { % void Entry::inbook_impl() {
start.bibitem % start_bibitem();
true output.author % output_author(true);
true output.title % output_title(true);
true output.mark % output_mark(true);
false output.translator % output_translator(false);
%cap.double.slash write$ % write(cap_double_slash);
cap.period write$
false output.editor % output_editor(false);
true output.series.volume.booktitle % output_series_volume_booktitle(true);
false output.edition % output_edition(false);
publisher empty$ not { % if (! empty(this.publisher)) {
true output.address % output_address(true);
true output.publisher % output_publisher(true);
cap.comma write$ % write(cap_comma);
} { % } else {
cap.period write$ % write(cap_period);
} if$ % }
true output.year % output_year(true);
false output.pages % output_pages(false);
false output.citedate % output_citedate(false);
false output.url.or.doi % output_url_or_doi(false);
end.bibitem % end_bibitem();
} % }