
참고문헌 관련 질문이 있습니다. 저는 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
}
by (이것은 마지막 저자 뒤의 쉼표를 콜론으로 대체합니다):
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$
}
by(이렇게 하면 이름 형식이 로 변경됩니다 {jj.~}{vv~}{ll}{ f}
. 여기서: jj
접미사(예: Sr, vv
von 부분, 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$
}
ㅏMWE:
\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$
}