LaTeX 문서와 참고문헌 인용

LaTeX에서 참고문헌을 만들거나 인용하는 방법은 한국 Tex 사용자 그룹의 위키에 잘 정리되어 있다. (BibTeX, 참고문헌 만들기, 참고문헌 인용) 하지만, 진짜로 아무 것도 모르는 초보자에게는 자세하고 정확하지만 어려운 설명보다 미흡하고 심지어 오류가 있더라도 간단하고 쉬운 설명이 더 도움이 될지도 모른다. BibTeX와 bib 파일에 대해 공부한 내용을 적어둔다.

보고서나 논문같은 종류의 글을 쓰다 보면 다른 문헌을 인용할 일이 자주 생긴다.

위에서 Dijkstra (1979)와 Abelson et al. (1985)이 참고문헌 인용 부분이다. LaTeX에서 위와 같은 인용 문구를 삽입하는 방법은 간단하다.

  • thebiblography 섹션에다가 인용할 문헌의 목록을 집어넣는다. 각 문헌마다 고유의 cite key가 붙는다.
  • 본문에서 문헌을 인용하려는 부분에 그의 cite key를 적는다.

아래는 tex파일 예제. Dijkstra:1979p5096, Abelson:1985p5302 같은 것이 cite key이며, 각 문헌에 대한 온전한 설명은 하단의 bibitem에 쓰여 있다.

기본적인 방법은 이렇게 간단하지만 참고 문헌의 개수가 늘어나면 그 목록을 관리하고 또 각각에 cite key를 발급해주는 것도 큰일이다. 그래서 보통 이런 작업을 쉽게 해주는 소프트웨어를 사용하게 되는데, 맥OSX 용으로는 무료인 BibDesk나 얼마 전에 구입한 Papers 등이 있다. 이런 프로그램들은 bib 파일 형식으로 데이터를 저장하거나, 아니면 적어도 bib 파일 형식으로 내보내는(export) 기능을 탑재하고 있다. bib 파일이 도대체 무엇이길래 그러는 걸까?

bibliography를 영어사전에서 찾아보면 “서지학” 또는 “저작 목록”이라는 뜻이 있으며, bib 파일은 이런 문헌들의 데이터베이스를 담고 있는 파일이다. 텍스트 형식이기 때문에 문서 편집기로 열어볼 수도 있다.

bib 파일 예제

위의 왼쪽 그림을 눌러서 키워보면 알겠지만, bib 파일은 메타데이타 형식이기 때문에 저 내용을 그대로 thebibliography 섹션에 갖다붙일 수가 없다. 그래서 사용하는 것이 바로 BibTeX이다. 이 프로그램은 bib 파일을 읽어서 (aux와 bst 파일을 참고하여) thebibliography 란에 들어갈 수 있는 텍스트로 변환해준다. 그 결과물은 bbl 파일에 저장된다.

TeXShop을 쓰고 있다면 Typeset 메뉴 BibTeX 명령을 실행하면 된다. BibTeX은 꽤나 영리해서 bib 파일에 있는 문헌 중에 실제로 인용된 것만 골라서 bbl 파일에 넣어준다. (정확하게 말하면, LaTeX에서 만드는 aux 파일에 그 정보가 들어 있고, BibTeX은 그것을 이용하는 것이다.) BibTeX에게 일을 시키려면 당연히 어떤 bib 파일을 변환할지, 결과로 만들어질 텍스트의 형식이 어떠해야 할지를 알려줘야 하는데, 그건 아래와 같은 내용을 tex 파일에 직접 써주면 된다.

두 번째 줄에서 elsart-harv라는 스타일을 지정해주면 BibTeX은 elsart-harv.bst 파일을 읽어서 그에 맞게 텍스트를 변환한다. 따라서 bst 파일에는 당연히 bibliography 안의 bibitem이 어떤 형식이어야 하는지에 대한 설명이 들어가 있다. 쉽게 비유하자면, bib : bst = xml : xls, 뭐 이런 관계라고 보면 된다. 유명 저널들을 보면, 저자들이 그 저널에서 지정하는 형식으로 쉽게 논문을 쓸 수 있도록 cls 파일과 더불어 bst 파일도 함께 제공하는 경우가 많다.

이제 전체 과정을 다시 한 번 정리해보자.

  • 평소에 논문이나 그밖의 문헌 정보를 bib 파일에 저장해둔다.
  • 글을 쓰다가 참조(인용)하고 싶은 문헌이 있으면 그의 cite key를 써서 인용 문구를 삽입한다.
  • LaTeX으로 aux 파일을 만든다. (그래야만 bib 파일 중에서 실제로 인용한 문헌만 골라준다.)
  • BibTeX을 써서 bib 파일의 내용을 변환하고 이를 thebibliography 섹션에 추가한다.
  • LaTeX으로 최종 문서를 만든다.

blog built using the cayman-theme by Jason Long. LICENSE