참조/bibtex 스타일에서 쉼표와 점을 효과적으로 사용하는 방법

참조/bibtex 스타일에서 쉼표와 점을 효과적으로 사용하는 방법

기사 참조 스타일을 다음과 같이 사용하고 싶습니다.

작가,신문 용량pp.23-34(연도). 웹 링크

예를 들어:

AN 오하이오, BR Gerrad 및 M. Forsyth,Nat. 교배. 24pp. 345-456(2002). CrossRef

쉼표와 점을 효과적으로 사용할 수 있도록 bibtex 형식 스타일(.bst)을 변경할 수 있도록 도와주세요.


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


FUNCTION {fin.entry}
 { write$
  newline$
}

FUNCTION {format.authors}
{ author empty$
    { "," }
    { author format.names }
    if$
}

FUNCTION {format.date}
{ year empty$
    'year 
    {" ("   year * ")." * }
  if$
}

FUNCTION {format.vol.num.pages}
{ volume field.or.null boldface
  number empty$
    'skip$
    { "(" number * ")" * *
      volume empty$
    { "there's a number but no volume in " cite$ * warning$ }
    'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
    { pop$ format.pages }
    { ", pp. " * pages n.dashify * }
      if$
    }
  if$
}

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

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  new.block
  ", " * write$ 
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      format.vol.num.pages output
      format.date "year" output.check
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  new.block
  howpublished output 
  fin.entry
}

나는 acs.bst를 사용했고 내가 변경한 섹션에서...위에 복사하여 붙여넣었습니다. 이러한 섹션을 원본 acs.bst 파일과 비교하여 변경 사항을 교차 확인할 수 있습니다. 쉼표와 점을 완전히 제어할 수 있게 되었습니다.

관련 정보