尽管使用了“and”,BibTex 仍存在作者字段中多个名称的问题

尽管使用了“and”,BibTex 仍存在作者字段中多个名称的问题

我是 StackExchange 新手!

我有这个文件:

\documentclass[a4paper,12pt,oneside,italian]{book}
\usepackage[utf8]{inputenc}
\usepackage{url}

\begin{document}

Questa è una citazione \cite{Citation}.

\bibliographystyle{plain}
\bibliography{biblio}
\end{document}

还有这个书目:

@misc{Citation,
author = "Daniele Vietri and Francesca Castelli",
title = "M-commerce in Italia",
howpublished = {\url{http://www.dblog.it/ecommerce/}},
year = {2012},
note = {[accesso: Marzo 2013]}
}

为什么我会得到以下输出? 这让我抓狂了...

在此处输入图片描述

我想用逗号代替“and”。

而且为什么标题中的“Italia”一词的首字母变成了小写?

答案1

您正在指定

\bibliographystyle{plain}

这反过来指定名称列表应该由这段可读的代码格式化:

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { " and " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

在其中的某个地方,您会看到它会添加,and删除,et al具体取决于列表中剩余的名称数量。

您可以对此进行修改,但您不应更改默认文件,或者更轻松地找到另一种可以满足您的要求的 bibtex 样式。(也许可以使用包makebst来制作一个)。您需要决定要对长度为 0、1、2、3 和大于 N 的列表执行的操作(其中 N 为某个值)。

a, b不想要a and b,但是对于三个列表,正常的选择是或者a, b, and c但是a, b and c也许您想要a, b, c(如果您确实想要,您可以and在上面的副本中更改为,我认为。

答案2

我的回答基于先前的问题和答案,其核心使用了该biblatex软件包(它为经典的 LaTeX 和 bibTeX 二重奏提供了强大的替代品)。

\documentclass[a4paper,12pt,oneside,italian]{article}
\usepackage[utf8]{inputenc}
\usepackage{biblatex}
\usepackage{hyperref}

\addbibresource{biblio}
\renewcommand*{\finalnamedelim}{\addcomma\space}

\begin{document}

Questa è una citazione \cite{Citation}.

\printbibliography

\end{document}

附加内容。使用babelcsquotes包,您应该可以获得对意大利语惯例的良好支持。例如,如果您注释我们重新定义命令的行\finalnamedelim,您将得到意大利语“e”代替英语“and”。此外,该命令会\printbibliography自动打印与语言相关的参考书目标题,在本例中为“Riferimenti bibliograci”,但您可以为其提供参数[heading={text}]以选择您需要的任何内容。

另外,我使用了hyperref包而不是包url,因为它创建了实际的超链接(我认为它会url自动加载包)。

答案3

是否有一个好的理由去想要a, b而不是a and b(这是标准)?

如果是这样,你应该找到一种可以做到这一点的样式,或者像 David Carlise 所说的那样自己制作一种样式,尽管这样做应该有一个很好的理由(而不仅仅是“我只是喜欢这样”)。LaTeX 中的事情都是出于很好的理由,大多数时候都遵循标准的规定。

关于您的参赛号码布的一些评论:

  • 作者应写为Lastname, Names,即:

    author = {Vietri, Daniele and Castelli, Francesca and Mozart, Wolfgang Amadeus}

  • 根据样式,它将以不同的方式管理标题(即大写所有字母、单词的首字母等)。您应该以一致的方式编写标题。如果您知道某些单词必须大写(如意大利、IEEE 等),您可以像这样强制执行:

    title = {M-commerce in {I}talia},

相关内容