Zotero bibliography export를 입맛대로 - Better BibTeX

Zotero bibliography export를 입맛대로 - Better BibTeX

기본 BibTeX export가 2% 부족할 때

한계 1: BitTeX는 원래 UTF-8을 지원하지 않는다.

Zotero는 다양한 형식의 파일로 내 bibliography 목록을 내보내는 기능을 내장하고 있다.

Subcollection을 통째로 export하는 화면
Subcollection을 통째로 export하는 화면
Zotero에 내장된 export 가능 확장자들
Zotero에 내장된 export 가능 확장자들

이들 중 LaTeX를 통한 논문 작성에는 BibLaTeX, BibTex가 사용된다. 둘 중 무엇을 선택해야 할까?

사실 우리에게는 선택 권한이 없다. 논문 투고를 위해선 해당 학술지의 LaTeX 규정을 따라야만 하고, 그들은 대부분 좀 더 오래된 BibTeX를 고수하고 있는 듯 보인다. 예를들어 ElsevierLaTeX instruction for authors 를 보면, BibTeX를 사용하도록 강제하는 것을 알 수 있다.

When you are asked to submit your manuscript source files, do the following if PDF version is allowed:

  • Build a PDF of your manuscript source files on your computer and attach it with item type ‘Manuscript’.
  • Bundle all manuscript source files in a single archive and attach it with item type ‘LaTeX source files’. Source files include LaTeX files, BibTeX files, figures, tables, all LaTeX classes and packages that are not included in TeX Live and any other material that belongs to your manuscript.

문제는 이 BitTeX가 아주 오래된 녀석이란 점이다. 그래서 기본적으로 UTF-8 환경 대신 ASCII 환경을 가정한다.

그렇기 때문에 한국어, 일본어, 중국어는 표시할 수 없고, 일부 라틴어 또한 표기가 제대로 되지 않는다. 한국어, 일본어, 중국어는 그래도 괜찮은데, 일부 서구권 저자 이름들 까지 제대로 표기되지 않는 경우가 발생한다.(예: Uyanık, Karatuğ) 이 경우 문제가 될 수 있다.

이를 해결하려면 이런 항목들마다 excape을 사용한 표현으로 바꿔줘야 한다.

[BibTeX에서 special symbols and Excapes 사용 방식](https://www.bibtex.org/SpecialSymbols/)
BibTeX에서 special symbols and Excapes 사용 방식

다행히 이 한계는 다음처럼 Western 옵션을 사용하면 해결이 되긴 한다. (이걸 모르면 나처럼 수동으로 이걸 제거하려고 시간을 갈아넣게 된다.)

Export encoding 옵션
Export encoding 옵션

그렇지만, 이런 걸 사용자가 직접 알아내서 설정해야하는 것 자체가 조금은 불만족스러운 부분이다.

한계 2: 원하는 metadata 항목을 선택해서 export할 수 없다.

이건 좀 더 답답한 부분이다. Zotero에서 bibtex로 export할 때는 일단 있는 모든 metadata를 전부 export하여 하나의 파일로 만든다. 선택할 수 있는건 Notes와 Files의 포함 여부 뿐이다.

이렇게 export를 했더니, 너무 불필요한 정보까지 전부 Bibliography에 출력하는 게 아닌가?

article 항목임에도 Retrieved date와 web 주소가 포함되는 모습
article 항목임에도 Retrieved date와 web 주소가 포함되는 모습

물론, .bst 파일을 직접 튜닝하면 이 부분은 큰 문제가 되지않을 부분이다. 그리고 편집 단계에서 알아서 처리할 부분일 수도 있다. 하지만 심사에서 지적을 받는다면?? (내가 이걸로 지적을 받았다.)

그래서 bib 파일 수준에서 이를 컨트롤하고 싶어진다. 하지만 zotero는 그런 기능을 자체적으로 제공하지 않는다.

Better BibTeX를 사용하면 됩니다.

앞선 두 문제는 아마 많은 zotero 유저들의 고민이었을 것이다. 그래서 그런지 이를 해결하는 plugin이 존재한다. Better BibTex 이다.

공식 소개 를 보면 세 가지 특징을 얘기한다.

  1. Facilities for generating citation keys:
    zotero가 기본으로 사용하는 citation key 생성 방식은 한 가지로 고정되어 있다. 그래서 종종 같은 저자 이름과 연도를 가질 경우 구분이 잘 안되거나, 충돌이 발생하기도 한다. 이걸 원하는대로 customize 할 수 있다.
  2. Conversion between formats and encodings:
    BibLaTeX로 넘어가지 못하고 BibTeX에 묶여있는 나 같은 사람들을 위해, UTF-8을 BibTeX로 export할 때 encoding을 알아서 잘 처리해준다. (인코딩 문제에 제작자가 얼마나 열받았는지, 이 문제를 PITA라고 설명한다…)
  3. Facilities for exporting data from Zotero:
    Export할 때 내맘대로 custom하는 기능을 구현해두었다.

우리가 원하는 기능은 다 갖추고 있는 것 같다. 그럼 한번 맛을 보도록 하자.

Better BibTeX plugin 설치

Zotero에서 플러그인 설치하는 방법은 모든 플러그인이 똑같다. (원한다면 Better BibTeX의 설치 가이드 를 보자.) 다음의 순서를 따라가자.

설치파일 다운로드

공식 github에서 .xpi 파일을 다운받아 준다. 가장 최근 release된 버전 을 사용하자.

Zotero에 xpi로 plugin 설치하기

다음의 순서를 따라 설치를 진행한다.

  1. In the main menu go to Tools > Plugins
  2. Select Plugins
  3. Click on the gear in the top-right corner and choose Install Plugin From File…
  4. Choose .xpi that you’ve just downloaded, click Install

자, 이러면 설치는 끝났다. 다음으로 설정 페이지를 한번 보자.

Better BibTeX plug 설정 맛보기

Edit > Settings > Better BibTeX tab 순서로 설정에 진입할 수 있다.

그러면 굉장히 긴 메뉴가 나오는데, 우리가 관심을 둘 부분은 다음의 이미지들과 같다. 각 이미지에 대한 설명은 caption을 참고하자.

원하는 citation key를 설정할 수 있다. 필자는 `zotero.clean` 옵션으로 일단 사용하고 있다. 기본 zotero를 통해 export하여 작성중인 논문 때문에 일단은 이걸 사용중이나, **그런 제약이 없다면 바꾸는 게 더 좋은 선택일 것이다.**
원하는 citation key를 설정할 수 있다. 필자는 zotero.clean 옵션으로 일단 사용하고 있다. 기본 zotero를 통해 export하여 작성중인 논문 때문에 일단은 이걸 사용중이나, 그런 제약이 없다면 바꾸는 게 더 좋은 선택일 것이다.
BibTeX export 시 Unicode를 plain-text로 치환하는 옵션 체크! <br>그리고 하단의 Fields에서 불필요한 필드의 metadata를 제외하는 옵션도 확인!
BibTeX export 시 Unicode를 plain-text로 치환하는 옵션 체크!
그리고 하단의 Fields에서 불필요한 필드의 metadata를 제외하는 옵션도 확인!
앞서 fileds를 통해 처리할 수 없는 부분은 커스텀 postscript를 작성하여 처리할 수 있다.
앞서 fileds를 통해 처리할 수 없는 부분은 커스텀 postscript를 작성하여 처리할 수 있다.

아마, 필자가 사용하는 옵션은 극히 일부에 불과할 것이다. 공식 메뉴얼 을 참고하면 더 복잡한 scripting, citation key generation이 가능할 것이라 생각된다.

마무리하며

다음날 due date를 맞추기 위해 새벽 두 시에 이 BibTeX를 찾아내고, 사용법을 익혀서 급하게 원하는대로 처리를 했었다. 이게 아니었으면 나는… 또 하나씩 손으로 bib 파일을 수정하고 있었을 것이다. 밤새도록…

이 포스팅을 참고해서, 다른 사람들은 나처럼 고생하지 않았으면 좋겠다.

Last updated on