Изменение редакторов (строчные буквы) на редакторов (курсив) в стиле BibTeX, аналогичном apalike

Изменение редакторов (строчные буквы) на редакторов (курсив) в стиле BibTeX, аналогичном apalike

Я пытаюсь привести BibTeX в соответствие со стандартами конкретного журнала (они очень похожи на APA). Я создал пользовательский файл .bst с помощью прекрасного пакета custom-bib, который работал очень хорошо, за исключением двух вещей.

Для книги, в которой нет авторов, но есть редакторы, мой файл .bst выдает

Кук, Э. и Кариукстис, Л. (редакторы), 1990.Методы дендрохронологии: применение в науках об окружающей среде, Kluwer Academic Publishers

но я хочу, чтобы это производило

Кук, Э. и Кариукстис, Л. (Редакторы), 1990. Методы дендрохронологии: применение в науках об окружающей среде, Kluwer Academic Publishers

Обратите внимание на разницу в (редакторах) и отсутствие курсива в заголовках. Я понимаю, что это невозможно воспроизвести без фактического файла .bst, но я надеюсь, что кто-нибудь сможет указать мне правильное направление. Возможно, следующие функции имеют значение. Синтаксис BST для меня навскидку довольно непонятен.

FUNCTION {bbl.editors}
{ "editors" }

FUNCTION {format.editors}
{editor "editor" format.names duplicate$ empty$ 'skip$
    {
      " " *
      get.bbl.editor
   "(" swap$ * ")" *
      *
    }
  if$
}

FUNCTION {format.names}
{ 'bibinfo :=
  duplicate$ empty$ 'skip$ {
  's :=
  "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}{, jj}{, f{.}.}"
      format.name$
      bibinfo bibinfo.check
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                {
                  " " * bbl.etal *
                }
                {
                  bbl.and
                  space.word * t *
                }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  } if$
}

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