Формирование библиографии

Формирование библиографии

У меня есть вопрос по библиографии. Я не профессионал LaTeX, для меня в данный момент не имеет значения, использовать ли мне встроенную библиографию или bobtex. Вопрос в том, как мне выполнить нужное мне форматирование. Вот пример элемента библиографии:

[1] Doe J.: How to format bibliography?. JohnDoe limited, Warsaw, 2015.

Как видите, имя автора размещено так, затем идет точка и двоеточие. Название должно быть курсивом. Затем после запятых издатель, город и год. Я был бы признателен за любую помощь по этому поводу!

решение1

Чтобы добиться желаемого, вы можете изменитьutphys.bstфайл следующим образом:

Во-первых, вам необходимо заменить

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.quote =
    { " " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
        'write$
        { output.state after.quoted.block =
            { write$
              newline$
              "\newblock " write$
            }
            { add.period$ " " * write$ }
          if$
        }
          if$
        }
      if$
    }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

(запятая после последнего автора будет заменена двоеточием):

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ": " * write$ } % Modified
     { output.state after.quote =
    { " " * write$ }  % between Title and journal
    { output.state after.block =
        { add.period$ write$   
          newline$
          "\newblock " write$
        }
        { output.state before.all =
        'write$
        { output.state after.quoted.block =
            { write$
              newline$
              "\newblock " write$
            }
            { add.period$ " " * write$ }
          if$
        }
          if$
        }
      if$
    }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

И вам также следует заменить код:

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

по (Это изменит формат имени на {jj.~}{vv~}{ll}{ f}, где: jjобозначает суффикс, например Sr, vvvon part, llфамилию и fпервую букву имени):

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{jj.~}{vv~}{ll}{ f}" format.name$ 't :=
      nameptr #1 >
    { namesleft #1 >
        { ", " * t * }
        { numnames #2 >
        { "," * } % { "," * }
        'skip$
          if$
          t "others" =
        { " {\em et~al.}" * }
        { string.and * t * } 
          if$

        }
      if$
    }
    't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
} 

Чтобы сделать заголовок статьи italicи удалить кавычки, в которые он заключен, необходимо заменить код:

FUNCTION {format.title}
{ title empty$
    { "" }
    { "``" title "t" change.case$ * ",''" * }
  if$
}

FUNCTION {format.title.p}
{ title empty$
    { "" }
    { "``" title "t" change.case$ * ".''" * }
  if$
}

по коду:

FUNCTION {format.title}
{ title empty$
    { "" }
    { "" title emphasize "t" change.case$ * "." * } % Modified
  if$
}

FUNCTION {format.title.p}
{ title empty$
    { "" }
    { "``" title "t" change.case$ * " ''." * } 
  if$
}

Чтобы предотвратить появление «имени журнала», italicвам необходимо заменить

FUNCTION {format.journal}
{ journal missing$   
    { "" }
    {journal emphasize " " *
     format.volume *
     format.number *
     format.date.paren *
     format.pages.nopp *
      }
    if$
}

к

FUNCTION {format.journal}
{ journal missing$   
    { "" }
     {journal " " *  % Modified
     format.volume *
     format.number *
     format.date.paren *
     format.pages.nopp *
      }
    if$
    }

АМВЭ:

  \documentclass{article}
   \begin{filecontents*}{test.bib}
     @book{Albuquerque2015,
       address = {Cham},
       author = {Albuquerque, Ulysses Paulino},
       doi = {10.1007/978-3-319-06517-5},
       isbn = {978-3-319-06516-8},
       pages = {67},
       publisher = {Springer International Publishing},
       title = {{Speaking in Public About Science}},
       year = {2015}
       }
     @article{B,
      author = {AuthorA, A. and AuthorB, B. and AuthorC, C.},
      journal = {Journal of Physics},
      pages = {1233},
      title = {{Title of the paper}},
      volume = {567},
      year = {2016}
        }
  \end{filecontents*}
  \begin{document}

   ~\nocite{*}

 %Bibleography

 \bibliographystyle{utphys}
 \bibliography{test}
 \end{document}

Это дает:

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

Обновлять:Чтобы поставить точку после сокращенных имен и удалить ее andперед фамилией, необходимо FUNCTION {format.names}заменить ее на:

 FUNCTION {format.names}
    { 's :=
      #1 'nameptr :=
      s num.names$ 'numnames :=
      numnames 'namesleft :=
        { namesleft #0 > }
        { s nameptr "{jj.~}{vv~}{ll}{ f.}" format.name$ 't :=
          nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
            { ", " * } % { "," * }
            'skip$
              if$
              t "others" =
            { " {\em et~al.}" * }
            { t * } 
              if$

            }
          if$
        }
        't
          if$
          nameptr #1 + 'nameptr :=
          namesleft #1 - 'namesleft :=
        }
      while$
    }

Это дает для моего MWE выше: введите описание изображения здесь

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