KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
It's not reality that's important, but how you percieve things.
FrontPage › CustomBib
참고문헌 / custom-bib

여기에서는 custom-bib를 사용해서 자신의 BSTFile을 만든 후 수정하는 방법에 대해 다룹니다.

목차

1 개 요
2 예 제
2.1 예제양식
2.2 makebst(custom-bib) 사용하기
2.3 bst 파일 수정하기
3 유용한 팁
4 읽을거리

1 개 요

CustomBib은 Daly씨가 만든 TeX 유틸리티로서, 사용자가 자신의 BSTFile을 만들 수 있도록 해준다. 기본적인 사용법은 makebst.tex 파일에 대하여 LaTeX을 실행하면 BSTFile을 생성해주는 방식이다.
#> latex makebst

2 예 제

2.1 예제양식

출판사에서 다음과 같은 양식을 사용해야 한다고 가정하자. 기본적으로 볼드체이탤릭은 사용하지 말고 모든 저자를 명시해야 한다. 자세한 사항은 다음 예를 참조하라.

  • 1. AW Warner, DL White, WA Bonner. Real-time Fourier transformation via acousto-optics.
    J Appl Phys 43:4489-4493, 1972. (for journal papers)
  • 2. D Dzombak. Elements of Power Systems Analysis. 3rd ed. New York: McGraw-Hill,
    1975, pp. 125-134. (for books)
  • 3. UM Diwekar, Solvent selection under uncertainty. In: GV Recklitis, ed. Clean
    Solvents Design. New York: Marcel Dekker, 2002, pp.169-174. (for book chapters)
  • 4. S Sorensen, S Skogestad, Multivessel columns. Proceedings of Advances in Batch Distillation,
    Pittsburgh, 2002, pp. 270-282. (for meetings)

이 양식의 까다로운 점은 다음과 같다.

  • 퍼스트네임 약자 + 라스트네임 (예, JF Smith).
  • 저자, 저널명, 책제목, 북챕터, 미팅제목 다음에는 반드시 Period(.)를 넣고 나머지는 쉼표를. 넣는다.
  • 저널에서 출판년도는 쪽번호 다음에 와야 하고, 책, 북챕터의 경우 쪽번호 앞에 와야 한다.
  • ‘In: ’ 은 북챕터에만 사용하고 미팅이나 학회지에는 사용하지 말아야 한다.

2.2 makebst(custom-bib) 사용하기


1. CTAN에서 makebst.ins, makebst.dtx, 그리고 merlin.mbs를 다운 받는다. merlin.mbs 파일은 master bibliography style파일로써 이 파일에서 우리가 원하는 양식이 추출된다.

2. 다음 명령어를 커맨드라인에서 입력하자.
   latex makebst.ins
   latex makebst
   


3. 그러면 양식 설정과 관련된 질문이 나올 것이다. 한번 선택하고 나면 뒤로 돌아갈 수 없으므로
신중히 선택하자. 물론 나중에 수정할 수 있으니 큰 걱정은 하지 마시고. 잘 모르겠으면 그냥 디폴트를 선택하고 넘어 간다. 다음은 몇 가지 중요한 질문만 요약한 것이다.
   (a) Do you want a description of the usage? => yes

   (b) Enter the name of the MASTER file => default.

   (c) Name of the final OUTPUT .bst file? => type your .bst file name (여기서는 imsi라고 함).

   (d) Do you want verbose comments => yes (자세한 설명을 볼 수 있으므로 예스라고 함).

   (e) STYLE OF CITATIONS: => (a) Author-year with some non-standard interface (저자-년도).

   (f) AUTHOR-YEAR SUPPORT SYSTEM => Natbib for use with ~ (Natbib와 함께 사용할 거라고).

   (g) ORDERING OF REFERENCES => (c) Citation order (unsorted ...) (본문에 언급된 순서되로).

   (h) AUTHOR NAMES => (x) Surname + pure initials (Smith JF). (우리가 최종적으로 원하는 것은
       JF Smith 스타일임. 옵션에 항목에 없기에 이걸 선택하고 나중에 수정함)

   (i) DATE POSITION => (*) Date at end. (저널에서는 년도가 제일 나중에, 책과 미팅에서는
       페이지 번호 앞에 년도가 와야 하므로 역시 나중에 수정함)

   (j) JOURNAL NAMES => (x) Dottles journal names as 'Phys Rev'.

   (k) VOLUME PUNCTUATION => (*) Volume with colon as vol(num):ppp.

   (l) JOURNAL NAME PUNCTUATION => (x) Space after journal name.

   (m) PUBLISHER POSITION => (e) Publisher after edition.

   (n) PUNCTUATION BETWEEN SECTIONS => (t) Period after titles of articles, books,
       etc else commas.

   (o) PUNCTUATION AFTER 'IN' => (c) Colon after 'in' (as 'In: ..'). (그러나 미팅에서는 In: 이 필요
   없으므로 나중에 수정함).

   (p) 끝났음. 'imsi.dbj' 파일을 만들어짐. 이 파일로 부터 imsi.bst 파일을 만들겠냐고
   물어봄? 예스하면 imsi.bst 파일이 만들어 진다.
   


4. 옵션을 잘못 선택한 것이 있어 수정하고 싶다면 앞에서 만들어진 imsi.dbj파일 (아스키파일임)을 노트패드 같은 에디터로 연다. 질문은 모두 대문자로 되어 있고 여러분이 선택한 옵션에는 설명부호(%)가 없다. 잘못된 선택에 설명부호를 넣고 원하는 옵션에서 설명부호를 없애면 된다. 그런 다음에 latex imsi.dbj을 실행하면 다시 imsi.bst파일을 만들어 준다.

2.3 bst 파일 수정하기


위에서 봤듯이 custom-bib가 우리가 원하는 모든 종류의 옵션을 다 가지고 있는 것은 아니다. 따라서 최대한 우리가 원하는 양식에 가깝게 만든 후 수정을 해야 한다. 시간이 된다면 /textmf/doc/bibtex에 있는 btxdoc.dvibtxhak.dvi파일을 읽어보길 권장한다. (bst 파일이 postfix stack 언어로 작성되어 있다고 하는데 글쓴이가 여기 적어 놓은 방법외에는 아는 것이 별로 없습니다 ^_^).

1. 위의 imsi.bst파일을 가지고 참고문헌을 만들면 12와 같이 브래킷이 붙어서 나올 것이다. 우리는 12.과 같이 원하므로 LaTeX 서두 부분에다가 다음 코드를 넣으면 해결이 된다.
   \makeatletter % Reference list option change
     \renewcommand\@biblabel[1]{#1.} % from [1] to 1.
   \makeatother %
   
옵션키 #1. 은 원하는 다양한 모양으로 대체될 수 있다. 예를 들어, #1). 는 1). 로 될 것이다. 아무것도 적지 않으면 숫자없이 나올 것이다.

2. Smith JF를 JF Smith로 바꾸어 보자. imsi.bst을 텍스트 에디터로 열어서 FUNCTION {format.names}를 찾아보자. {vv~}{ll}{ f{}}{ jj}와 비슷한 코드를 볼 수 있는데, vv는 von part (예를 들어 von Neumann), ll은 라스트네임, ff는 퍼스트네임, 그리고 jj는 쥬니어 파트이다. 문자가 두개가 있으면 (예를 들어 ll) 풀 네임이 오고 하나만 있으면 (예를 들어 f) 줄인말이 온다. 따라서 {vv~}{ll}{ f{}}{ jj}에 의해 Jane F. Smith란 이름은 Smith JF가 된다. 우리는 JF Smith를 원하므로 순서를 {f{}}{vv~}{ll}{ jj}로 바꾸면 된다.

3. 저자 이름 다음에 period(.)를 넣자. FUNCTION {article} 코드가 있는 장소로 가서, author format.key output 라인 바로 아래에 new.sentence란 라인을 삽입한다. 그러면 위의 custom-bib 사용하기의 스텝 (n)에서 설정한 PUNCTIONS BETWEEN SECTIONS에 의해 저자 다음에 피어리어드가 삽입된다.

4. 학술회자와 미팅에서 In: 을 제거하자. 출판사에서 북챕터에만 In: 을 사용하고 학술회지와 미팅에는 사용하지 말라는 규칙이 있으므로 imsi.bst파일에서 FUNCTION {incollection} 코드를 찾는다. 여기에서 format.in.ed.booktitle booktitle output.check이란 라인에 있는데 .in.ed를 제거하면 된다. 또한 FUNCTION {inproceedings}를 찾아서 동일한 작업을 하면 된다.

5. Edition을 책 제목 다음으로 옮기자. FUNCTION {book} 코드로 가서 format.edition output 라인을 책 제목 다음인 format.number.series output 라인 바로 위로 옮기면 된다.

3 유용한 팁


1. 동일저자가 동일년도에 동일제목의 논문이나 책을 몇 편 내면 BibTeX이 순서대로 정렬을 하지 못하는 경우가 있다. 예를 들어
   Daisyweb, Multiobjective Genetic Algorithms, Vol B, In-house Publishing, OH 2000
   Daisyweb, Multiobjective Genetic Algorithms, Vol A, In-house Publishing, OH 2000
   
라고 하면, Vol A가 먼저 와야 함에도 불구하고 Vol B가 먼저 정렬되는 경우가 있다.

BibTeX이 저자-년도-제목 순으로 bib 파일의 내용을 정렬하므로 다음의 코드를 현재 사용하는 bib 파일 첫부분에 삽입한다.
   @PREAMBLE{"\newcommand{\noopsort}[1]{}"}
   
다음으로 위의 두 bib item에 가서 년도를 다음과 같이 바꾼다.
   For Vol. A entry : year = "{\noopsort{a}}1971" (즉 year="1971"대신에)
   For Vol. B entry : year = "{\noopsort{b}}1971"
   
그러면 BibTeX이 Vol A를 먼저 소팅할 것이다. 간혹 제대로 되지 않으면 {\noopsort{a}}를 년도 대신에 제목앞에 붙혀서 테스트해 본다. (실제로 정렬 순서로는 3번째에 붙이게 되는데 여기에 붙혀야 정렬이 잘 되었든 기억이 있어서).

4 읽을거리



Contributors: Daisyweb



^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-01-06 14:44:33
Processing time 0.0462 sec