Проблема BibTex с несколькими именами в поле автора, несмотря на использование «и»

Проблема 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]}
}

Почему я получаю следующий вывод? Это сводит меня с ума...

введите описание изображения здесь

Я бы хотел поставить запятую вместо «и».

И почему первая буква слова «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}

Дополнительные материалы. Вместе с пакетами babelи csquotesвы должны получить достойную поддержку итальянских соглашений. Например, если вы закомментируете строку, где мы переопределяем команду \finalnamedelim, вы получите итальянскую "e" вместо английской "and". Кроме того, команда \printbibliographyавтоматически выводит заголовок для библиографии, которая зависит от языка, в данном случае "Riferimenti bibliograci", но вы можете дать ей аргумент, [heading={text}]чтобы выбрать то, что вам нужно.

Кроме того, я использовал hyperrefпакет вместо urlпакета , потому что он создает настоящие гиперссылки (я думаю, он загружает urlпакет автоматически).

решение3

Есть ли веская причина хотеть a, bвместо этого a and b(что является стандартом)?

Если так, вам следует найти стиль, который это делает, или создать его самостоятельно, как говорит Дэвид Карлиз, хотя для этого должна быть действительно веская причина (а не просто «мне просто так нравится»). Вещи в LaTeX делаются по очень веской причине, в большинстве случаев следуя тому, что диктуют стандарты.

Несколько комментариев по поводу вашего нагрудного номера:

  • Авторы должны быть указаны Lastname, Names, а именно:

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

  • В зависимости от стиля, он будет управлять заголовками по-разному (т. е. заглавными буквами, первой буквой слова и т. д.). Вы должны писать заголовки последовательно. Если вы знаете, что какое-то слово должно иметь заглавные буквы (например, Italy, IEEE и т. д.), вы можете принудительно сделать это следующим образом:

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

Связанный контент