我使用 babelbib 来生成参考书目。但是,它不能满足我的所有需求。我只希望条目的格式如下
[1] Knuth, D. 和 Torvalds, L.:我们没有一起写过任何东西等等。
[2] Abraham, A. 和 Barbara, B.: 我们的条目并不是第一个
所以它必须满足:
- 按文本中出现的顺序排列项目(并使用数字)
- 缩写名称
- 姓名必须按照“姓氏,名字”的顺序排列
我使用过
\bibliographystyle{bababbrv-lf}
\bibliographystyle{babunsrt-lf}
每一个都只实现了上述 3 点中的 2 点。我怎样才能让整个程序运行起来?下面,你会看到一个最小的工作示例,使用
pdflatex mwe.tex
bibtex mwe
pdflatex mwe.tex
pdflatex mwe.tex
pdflatex mwe.tex
麦格
\documentclass[a4paper]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{babelbib}
\begin{document}
\chapter{One}
Once, Lastname1 Firstname1 wrote a story~\cite{randomGuyStory}. And so did Derpina Derp~\cite{randomDerpinaStory}.
\backmatter
\bibliographystyle{babunsrt-lf}
% \bibliographystyle{bababbrv-lf}
\bibliography{mwebib}
\end{document}
网页设计
@article{randomDerpinaStory,
title={The Story of tl;dr},
author={Derp, Derpina and Herp, Herpington},
journal={Journal of Sunday-workers},
volume={284},
number={46},
pages={31548--31554},
}
@MASTERSTHESIS{randomGuyStory,
author = {Lastname1, Firstname1 and Lastname2, Firstname2 and Lastname3, Firstname3},
title = {Cool Story Bro},
school = {Random University},
year = {2012}
}
答案1
将文件复制babunsrt-lf.bst
到您的工作目录并重命名此文件,例如mybabunsrt-lf
此后将函数更改format.names
为以下定义:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
{
s nameptr "{ll}" format.name$ lastnamefont
s nameptr "{,~jj}{,~f{.\btxfnamespaceshort }.}{~vv}" format.name$ *
't :=
namesleft #1 >
{ ", " * t namefont * }
{ numnames #2 >
{ "\btxandcomma {}" * }
'skip$
if$
s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" =
{ " " "\btxetalshort {.}" etalfont * * }
{ " \btxandshort {.}\ " * t namefont * }
if$
}
if$
}
{
s nameptr "{ll}" format.name$ lastnamefont
s nameptr "{,~jj}{,~f{.\btxfnamespaceshort }.}{~vv}"
format.name$ * namefont
}
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
经过这样的修改我得到了以下结果: