Monday, October 7, 2013

Bibliography#01: BibTeX

Bibliography#01: BibTeX

Bibliography#01: BibTeX


;; =================================================
;; εμαcs is ⎋[esc]⌘[meta]⌥[alt]⌃[ctrl]⇧[shift].
;; =================================================

이 문서는 emacs org-mode 로 작성된 글입니다.

Operating System Environments

  • Main- : OS X Mountain Lion (10.8.5)
  • Sub- : Debian GNU/Linux Wheezy (7.2) || OS X Mavericks (10.9)
  • Server: Debian GNU/Linux Squeeze || Lenny
  • Mobile: iOS 7.0.3

LaTeX 사용환경

  • OS X: Aquamacs + Bash Shell + Skim
  • GNU/Linux: Emacs(+AUCTeX) + Bash Shell + Okular

Bibliography#01: BibTeX

§ BibTeX 이란?

BibTeX은 LaTeX을 이용하여 문서를 만들때, citations (or references)을 관리해 주는 소프트웨어로, 관련 파일의 확장자(extension)는 .bib 이다. LaTeX을 이용한 문서 작성 시, references를 넣은 방법이 크게 두 가지 있는데,

  • 하나가 LaTeX(.tex) 문서에 일일이 직접 적어 넣는 방법이고,
  • 다른 하나가 BibTeX(.bib) 파일을 만들어 모아두고 필요할 때 부르는 방법이 있다.

Steven Weinberg 의 유명한 논문 중 하나인 A Model of Leptons 을 통해 살펴보자.

9806180365_7ddfdbd3fb_o.png

첫번째 방법 - .tex 파일에 직접 넣기

위의 그림에서 두번째 빨간 박스된 LaTeX(US)을 클릭하면, 아래와 같은 화면이 나오는데,

9806202196_62c3c896f6_o.png

이를 아래와 같이 .tex 파일 안에, thebibliography 환경에 직접 넣고 compile 하면 된다.

\begin{thebibliography}{}
%\cite{Weinberg:1967tq}
\bibitem{Weinberg:1967tq} 
  S.~Weinberg,
  %``A Model of Leptons,''
  Phys.\ Rev.\ Lett.\  {\bf 19}, 1264 (1967).
  %%CITATION = PRLTA,19,1264;%%
\end{thebibliography}

위에서 주석 처리(%\cite…) 된 부분을 보면 알 수 있듯이, 이 주석을 넣을 곳에 \cite{Weinberg:1967tq} 를 타이핑해 주고 compile 하면, 문서에 자동으로 주석이 따라 붙는다. 예를 들어, 아래와 같이 .tex에 적고

...
This is well described in his work~\cite{Weinberg:1967tq}.
...

compile 하면 본문에서는 아래와 같이 보이고

10128303646_05390397c3_o.png

문서 마지막에 주석이 아래와 같이 붙는다.

10128390893_bd772ac463.jpg

두번째 방법 - .bib 파일에 넣어 관리하기

위의 그림에서 첫번째 빨간 박스된 BibTeX을 클릭하면, 아래와 같은 화면이 나오는데,

9806255784_fe314433fe_o.png

이를 긁어서, bibliog.bib 파일에 넣어 저장하고,

 @article{Weinberg:1967tq,
      author         = "Weinberg, Steven",
      title          = "{A Model of Leptons}",
      journal        = "Phys.Rev.Lett.",
      volume         = "19",
      pages          = "1264-1266",
      doi            = "10.1103/PhysRevLett.19.1264",
      year           = "1967",
      SLACcitation   = "%%CITATION = PRLTA,19,1264;%%",
}

bibtex으로 compile 해 주면 된다. 예를 들어, 지금 작성하고 있는 문서의 이름을 main.tex라 하고, references를 모아둔 파일을 bibliog.bib라 하자. LaTeX을 통해 compile 하는 방법은, 우선 main.tex 안의 \end{document} 나오기 전에 아래 두 줄을 넣은 후,

\bibliographystyle{unsrt} %---> labelling in appearing order
\bibliography{bibliog}    %---> bibliog.bib contains bibtex information

bash shell(Terminal.app)을 열어, 아래 순서로 실행하면 된다.

$latex main
$bibtex main
$latex main
$latex main

FYI) pdflatex을 이용하는 경우는 위의 latex을 pdflatex으로 바꿔주면 되고, OS 상황에 따라 확장자(extension)을 일일이 붙여야 하는 경우도 있다.

§ BibTeX 사용의 장점

BibTeX을 이용하여 references를 관리하면 좋은 점은, 하나의 .bib 파일을 가지고 서로 다른 문서의 인용 처리를 할 수 있다는 점이다. 물론 필요한 경우(editor 나 referee 에게 전달해야 할 경우)에는 각 문서마다 따로 .bib를 만들어야 하지만, 관리라는 측면과 초안(manuscript)를 만들고 있는 경우에는 단 하나의 .bib 파일로 참조한 모든 references를 관리하는 것이 편하다.

Aquamacs(or Emacs + AUCTeX) 사용자의 경우, 작성 중인 문서에 reference를 다는 것이 무척 편한다. 위에서 다룬 경우의 예(main.tex & bibliog.bib)를 계속 사용해서 얘기하면, 한 번 LaTeX compile 하고,

$latex main

Aquamacs로 부른 main.tex 에서,

  1. 단축키(⌃C [)를 쓰던지, 직접 ⌥x 로 Minibuffer를 불러, reftex-citation 을 타이핑한 후 ,
  2. weinberg ↩ 하면, bibliog.bib 에 저장한 모든 references 정보 중, weinberg와 관련된 모든 references가 뜬다.
  3. 그 중에 하나를 위/아래 화살표(↑/↓)로 선택 후 ,

그러면, 저절로 들어간다. 물론, 위에서 이미 언급한 대로, main.tex 안에 적당한 형식으로 bibliog.bib 를 references로 쓴다고 적어 놓아야 하고, bibtex과 latex으로 compile 해 주어야 한다.

간단히 말해서, 하나의 .bib 파일에 모든 references 정보를 모아 놓고, 각 문서에 그 단 하나의 .bib 파일을 이용하여 references를 달더라도, 당연히 compile 후 완성된 문서에는 각 문서에서 직접 \cite{} 로 적어 넣은 것만 자동으로 붙여준다.

아래는 간단하게 만들어본 무음 동영상이다. 실제로 OS X 에서 Aquamacs(LaTeX+BibTeX) + Terminal(Bash) + Skim으로 작업하는 모습을 담아봤다. Quicksilver는 찬조 출연했다.


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Created: 2013-11-02 Sat 21:10

Emacs 23.4.1 (Org mode 8.0.2)

Validate XHTML 1.0

No comments:

Post a Comment