参考书目中的名称用逗号分隔,而不是用“and”分隔?

参考书目中的名称用逗号分隔,而不是用“and”分隔?

我的文本是德语的,但我使用了这种风格alpha,并不是alphadin因为我不喜欢后者的大写和词序。我唯一遇到的问题alpha是它用“and”分隔名称:

[AZ10] Martin Aigner 和 Günter M. Ziegler。谎言之书。Springer,柏林,海德堡,2010 年。

我希望它用逗号分隔。

我的代码(以防万一相关):

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{natbib}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@BOOK{Aigner2010,
    AUTHOR = {Martin Aigner and G{\"u}nter M. Ziegler},
    YEAR = {2010},
    TITLE = {Das Buch der Beweise},
    ISBN = {978-3-642-02259-3},
    PUBLISHER = {Springer},
    ADDRESS = {Berlin, Heidelberg},
}

\end{filecontents}

\begin{document}

\nocite{*}
\bibliographystyle{alpha}
\bibliography{\jobname} 

\end{document}

答案1

如果您想坚持使用 BibTeX,那么创建一个能够实现您的目标的文件的修改形式并不太困难alpha.bst

  • 在您的 TeX 发行版中找到该文件alpha.bst。复制此文件并将其命名为alphacomma.bst。(不要直接从 TeX 发行版编辑文件。)

  • alphacomma.bst在文本编辑器中打开该文件。

  • 查找字符串 的两个实例" and "。一个实例(最有可能)位于函数 的第 203 行format.names,另一个位于函数 的第 482 行format.crossref.editor

  • " and "将的两个实例替换为", "。注意逗号后面的空格。

  • 在函数的format.names第 198 行左右,找到以下行

                    { "," * }
    

    (此行紧接着包含代码的行{ numnames #2 >。)

    将此行更改为

                    { "" * }
    

    如果您好奇的话:在 的原始版本中alpha.bst,如果一个条目有三位或更多作者,则在最后一位作者前插入一个逗号。由于我们现在使用,逗号作为全部作者,不再需要在最后一位作者前插入逗号。

  • 将文件保存alphacomma.bst在主文件所在的目录/文件夹中.tex,或保存在 BibTeX 搜索的目录/文件夹中。如果选择后者,请确保适当更新 TeX 发行版的文件名数据库。

  • 按照说明开始使用新的书目文件\bibliographystyle{alphacomma}。再运行 LaTeX、BibTeX 和 LaTeX 两次以传播所有更改。

祝您 BibTeX 愉快!

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

%%\usepackage[alpha]{natbib}  % 'natbib' not really useful with alpha style

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@BOOK{Aigner2010,
    AUTHOR = {Martin Aigner and G{\"u}nter M. Ziegler},
    YEAR = {2010},
    TITLE = {Das Buch der Beweise},
    ISBN = {978-3-642-02259-3},
    PUBLISHER = {Springer},
    ADDRESS = {Berlin, Heidelberg},
}
\end{filecontents*}

\begin{document}
\cite{Aigner2010}
\bibliographystyle{alphacomma}
\bibliography{\jobname} 
\end{document}

答案2

以下是使用 的解决方案biblatex。(如果您不想打印 ISBN,请biblatex使用选项加载isbn=false。)

\begin{filecontents*}{\jobname.bib}
@book{Aigner2010,
  author = {Martin Aigner and G{\"u}nter M. Ziegler},
  year = {2010},
  title = {Das Buch der Beweise},
  isbn = {978-3-642-02259-3},
  publisher = {Springer},
  address = {Berlin, Heidelberg},
}
\end{filecontents*}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[
backend=biber,
style=alphabetic,
%natbib=true, % not needed here but FYI
]{biblatex}
\renewcommand*{\finalnamedelim}{\addcomma\addspace}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

在此处输入图片描述

相关内容