LaTeX에서 UTF-8 BibTeX 사용

LaTeX으로 BibTeX를 사용할 때 Zotero로 연계해서 사용하는 경우 UTF-8로 Exporting이 완벽하게 되지 않는 경우가 있다. 특히 다음 제목처럼 동유럽 언어로 된 이름이 들어가는 경우 잘 표시가 되지 않는 컴파일 하면 엑센트가 들어간 부분이 나타나지 않거나 아예 저자 이름 자체가 나타나지 않는 경우가 있다. 이 포스트에서는 이런 문제를 해결하는 한 가지 방법에 대한 메모를 옮겨 놓았다.

Čo je to Lorem Ipsum?

LaTeX을 어떤 목적으로도 쓰는 분은 다들 아시겠지만 일반적인 워드 프로그램과 달리 LaTeX은 사용자 개인의 여러 설정이 천차만별이다. 따라서 되는 경우도 안되는 경우도 어떤 것이 원인인지 정확히 꼭 집어서 이야기할 수 없다는 점도 미리 밝혀두는 것이 좋을 것 같다.

간략히 문제가 생기는 상황을 이야기하고 거기에 대한 나름의 해결법을 메모해두었다.

** 알아 둘 점은 현재 포스팅은 Overleaf.com에서 pdflatex를 컴파일 엔진으로 사용할 때이다. 개인적인 이유로 xelatex, lualatex 컴파일 엔진은 아직 사용하지 않고 있다. UTF-8 문제는 xelatex/lualatex에서는 UTF-8을 native로 지원하기 때문에 생기지 않는 문제일 수도 있다.

상황 

  • 문서 작성은 Overleaf.com 이용하고 있다. 
  • 작업은 Overleaf에서 하고 bibliography는 Zotero를 이용하고 bibligraphy 연결은 Zotero에서 제공하는 sync 기능 사용
  • Overleaf에서 사용하는 compile 엔진은 주로 pdflatex이다.  
  • 사용하는 bibliography 팩키지는 natbib이며 \bibligraphystyle={apalike}

문제

  • Zotero는 명시적으로는 UTF-8을 지원한다고 되어있으나 실제로는 잘 구현되지 않는 듯하다.
  • 예를 들어 동유럽 저자의 이름 중 예를 들어 Kovačević처럼 accent 표기가 되어있는 글자들은 Zotero에서 sync를 통해서 Overaleaf에서 pdflatex로 컴파일하면 엑센트가 표기되지 않거나
    (! Package inputenc Error: Invalid UTF-8 byte xxx.)
    같은 에러를 낸다.
  • 참고로 위의 에러는 \usepackage[utf-8]{inputenc} 옵션을 사용할 때도 나타난다. 
  • 결과적으로 Overleaf에서 본문에 \cite{}를 써서 인용을 하면 엑센트나 특수 기호등 일반 UTF-8 encoding로는 잘 보이는 글자들이 compile을 하고 나면 제대로 나타나지 않는다는 점이다. 

참고로 현재 상황에 관련있는 preamble의 구성은 다음과 같다.

...
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\\usepackage[comma, authoryear]{booktabs}
\usepackage{natbib}
\setlength{\bibsep}{0.0pt}
\usepackage{textcomp}
\usepackage{marvosym}
\usepackage{wasysym}
\usepackage{amssymb}
...

 이 문제를 해결하는 방법으로 몇 가지가 제시되는 여러 방법, 예를 들어 Zotero상에서 LaTeX 특수 문자 표기 방식은 \v{C} 등으로 표시하고 Zotero상에서 ascii 혹은 plaintext로 export하는 방법 등, 여러 가지가 제시되어 있으니 Overleaf상에서는 잘 되지 않았다. 이 문제는 LaTeX에서는 개개인의 팩키지 구성 상황이 천차만별이므로 호환성 문제등과 결부되서 더 복잡하기도 한 것 같다.

아무튼 이 문제를 해결하는 가장 간단한 방법은 Zotero의 Add-on 기능을 사용해서 Better Bibtex for Zotero라는Zotero Add-on을 사용하는 것이다. Better BibTeX의 주요 장점으로는 (주장하는 바에 따르면 그리고 사용한 바에 의하면)  완벽하게 UTF-8 인코딩을 지원한다는 것이다.

아래 사이트에 가서 최신 버전을 다운로드 받는다.

https://github.com/retorquere/zotero-better-bibtex/releases/tag/v5.1.171

개발자가 아닌 일반 사용자는 ***.xpi 버전만 다운로드 받으면 된다. 그리고 Zotero에서 Tools/Add-ons 에서 위에서 받은 파일을 불러서 설치해주면 된다.
그리면 Zotero에서 Edit/Preferences로 가면 Better BibTex메뉴가 새로 생긴 것을 볼 수 있다. Better BibTex에서 다른 설정 사항들은 사용자마다 상이하므로 생략하고 Export 로 가서 하위 메뉴에 보면 BibTex와 BibLaTex메뉴 등이 있는데 BibTex를 쓸 것이므로 BibTex메뉴에서 아래 옵션만 체크 표시를 해준다.
그리고 Zotero 자체의 Export 메뉴에서 Default Format을 Better BibTeX로 설정해준다. 그리고 그 아래에 있는 Character Enconding은 UTF-8로 맞추어주면 된다. 아래 이미지는 샘플로 가상의 동유럽 저자를 인용한 문서로 만들어 본 것이다.

PDF 캡처 화면

캡처한 PDF 파일에서 보는 것과 같이 본문, 그리고 본문 내 저자 인용, 그리고 마지막 References 섹션 까지 모두 저자 이름이 바르게 표시된 것을 볼 수 있다.

Bibliography 용도로 natbib를 쓰고 있다. 사용하는 bibliography style에 따라 문제가 생길 수도 있다.

참고로 Better BibTeX에 대해 더 알고 싶은 경우 아래 링크로 들어가서 살표보면 도움이 될 것 같다.

https://retorque.re/zotero-better-bibtex/installation/

** 개인 메모 용도로 쓰고 혹시 도움이 될까 몰라 공유하는 포스팅들이라 자세한 설명은 넣지 않고 있으니 양해바랍니다. 도움이 되었으면 좋겠습니다.

Comments