Измените файл bst так, чтобы в тексте имена двух авторов были разделены символом «и».

Измените файл bst так, чтобы в тексте имена двух авторов были разделены символом «и».

Мне приходится работать с пользовательским файлом .bst для статьи. Когда у меня есть ровно два автора для ссылки, эти авторы разделеныв текстс " , ".
Например (Симонян, Зиссерман, 2014). Я хочу, чтобы было (Симонян и Зиссерман, 2014).
В моей библиографии стиль правильный. Так что, нужно ли менять файл .bst?
Я думаю, вот соответствующие строки:

INTEGERS { nameptr namesleft numnames }

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

FUNCTION {format.authors}
{ author empty$
    { "" }
    { "{vv~}{ll}{, jj}{, f.}" author format.names }
  if$
}

решение1

Соответствующий макрос — format.lab.names.abbr. Для «и» он должен читаться так:

FUNCTION {format.lab.names.abbr}
{ 's :=
  s num.names$ 'numnames :=
  numnames #1 >
    { numnames #2 >
        { s #1 "{vv~}{ll}" format.name$ " et al." * }
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { s #1 "{vv~}{ll}" format.name$ " et al." * }
            { s #1 "{vv~}{ll}" format.name$ " and " *
              s #2 "{vv~}{ll}" format.name$ * 
            }
          if$
        }
      if$
    }
    { s #1 "{vv~}{ll}" format.name$ }
  if$
}

изменение находится во второй ветви самого внутреннего условного оператора. Версия, isprs.bstдоступная в настоящее время наhttp://www.isprs.org/documents/orangebook/app5.aspxимеет

s #1 "{vv~}{ll}" format.name$ " , " * % replaced and with ,

там и мы заставляем это читать

s #1 "{vv~}{ll}" format.name$ " and " *

Еще раз. Обратите внимание на их комментарий и на фиктивный пробел перед запятой.


Конечно, вы все равно должны сообщить об этой проблеме сопровождающему шаблона и не должны изменять файл .bstнапрямую. Только изменить и переименовать копию, isprs-and.bstскажем, и задокументировать изменения.

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