
У меня есть вопрос по библиографии. Я не профессионал 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, vv
von 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$
}