
В настоящее время я изменяю файл bst. Проблема, с которой я сейчас столкнулся, заключается в том, как изменить разделитель стиля.
На данный момент я получаю следующий вывод:
Бади, Дина (2010) «Групповое мышление, Ирак и война с террором: объяснение изменений в политике США в отношении Ирака» Анализ внешней политики 6(4):277–296.
Однако мне нужен следующий вывод:
Бади, Дина (2010) «Групповое мышление, Ирак и война с террором: объяснение изменений в политике США в отношении Ирака», Foreign Policy Analysis 6(4):277–296.
БЕЗ запятой после года, но С запятой после названия (и после редактора в главе отредактированного тома).
Вот код bst-файла:
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
%{ add.period$ write$
{ " " * write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ add.period$ " " * write$ }
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title quote "title" output.check
new.block
crossref missing$
{
journal
"journal" bibinfo.check
"journal" output.check
add.blank
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
format.note output
fin.entry
}
FUNCTION {format.title}
{ title
duplicate$ empty$ 'skip$
{ "t" change.case$ }
if$
"title" bibinfo.check
}
решение1
Я попытался решить проблему самостоятельно. Поэтому я модифицировал функцию @article, изменив
format.title quote "title" output.check
к
format.title ", " * quote "title" output.check
Вот полная функция
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title ", " * quote "title" output.check
new.block
crossref missing$
{
journal
"journal" bibinfo.check
emphasize
"journal" output.check
add.blank
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
format.note output
fin.entry
}
Результат выглядит так:
Берк, Джон П. (2005a) «Кондолиза Райс в качестве советника Совета национальной безопасности: случай роли честного посредника», Президентские исследования, ежеквартальный вестник, 35(3): 554–575.
Однако я хочу, чтобы запятая находилась за пределами кавычек, как показано ниже:
Берк, Джон П. (2005a) «Кондолиза Райс в качестве советника Совета национальной безопасности: случай честной роли посредника», Президентские исследования Quarterly 35(3): 554–575.
Как я могу решить эту проблему? Может быть, изменив функцию кавычек?
FUNCTION {quote}
{ duplicate$ empty$
{ pop$ "" }
{ "`" swap$ * "'" * }
if$
}