BST 파일 수정 - 구분 기호 변경

BST 파일 수정 - 구분 기호 변경

현재 bst 파일을 수정 중입니다. 지금 직면한 문제는 스타일의 구분 기호를 변경하는 방법입니다.

현재 다음과 같은 결과가 나타납니다.

Badie, Dina (2010) '그룹사고, 이라크, 테러와의 전쟁: 이라크에 대한 정책 변화 설명' 외교 정책 분석 6(4):277–296.

그러나 다음 출력이 필요합니다.

Badie, Dina (2010) '그룹 사고, 이라크 및 테러와의 전쟁: 이라크에 대한 정책 변화 설명', 외교 정책 분석 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
}

결과는 다음과 같습니다.

Burke, John P. (2005a) 'NSC 고문으로서의 콘돌리자 라이스: 정직한 브로커 역할의 사례,' 대통령 연구 분기별 35(3): 554–575.

그러나 다음과 같이 쉼표가 따옴표 밖에 있기를 바랍니다.

Burke, John P. (2005a) 'NSC 고문으로서의 콘돌리자 라이스: 정직한 브로커 역할의 사례', 대통령 연구 분기별 35(3): 554–575.

그 문제를 어떻게 해결할 수 있나요? 어쩌면 인용 기능을 변경하면 될까요?

FUNCTION {quote}
{ duplicate$ empty$
    { pop$ "" }
    { "`" swap$ * "'" * }
  if$
}

관련 정보