1. missing date: 원래 구글 블로거에서 작성한 글을 옮겨온 글. 2. 3 DEC 2019: 글을 복사해오던 과정에서 에디터 설정에 따라 코드가 일괄적으로 잘못 적용된 부분을 확인 수정함 3. 29 JAN 2022: Update format
참고사항 (29 JAN 2022): 2022년 현재, 필자의 Biblatex환경은 Biber를 더이상 사용하지 않고, BibTex에 의존하고 있다. 1. 환경설정에 관한 글은 2019년도에 올린 BibTex 설정사항에 대한 글을 참조. 2. 관련 워크플로우는 2021년에 올린 Mac에서 문헌집필 환경 1편 LaTex (Emacs - RefTex - SyncTex - Skim) 글을 참조.
0. 들어가는 글
Bibtex를 사용하기 위하여 환경마다 조금 다른 상태에 슬슬 화나던 참에 일반적인 article용 설정 옵션을 찾은 김에 포스팅.
1. 요약
Biblatex를 기본으로, backend로서 biber를 이용한다. 패키지별 차이에 대해서는 잘 알지 못하므로 여기에서는 일단 사용가능한 옵션을 제공하는 것을 중점으로 진행
2. 패키지 기본 설정
필자는 다음과 같은 설정을 이용한다
- 여기서 첫줄은 말그대로 biblatex 패키지를 사용하겠다는 것인데 style=authoryear-comp의 경우에는 먼저 본문에서 textcite{}나 parencite{}명령어를 사용할때 “John (2014)”등으로 나타나게 된다. 여기서 -comp옵션이 더 붙는것은 만약 동 저자에서 여러논문을 나열할때 합쳐주는 역할을 한다. 예로들어 textcite{john2014a, john2014b, john2014b}를 사용했을때 “John (2014a,b,c)”등과 같이 나타나게 된다.
- sorting=nyt 인 경우 n=name, y=year, t=title인데 nyt 순으로 마지막에 printbibliogrphy 명령어를 사용하여 출력하는 순을 정해주겠다는 것.
- maxcitationames=3의 경우 저자는 3명까지만 출력하겠다는 것. 이보다 넘어가는 경우 “et al.”로 알아서 묶어준다.
- backend=biber 를 사용해서 백엔드로 지정해줌. 나중에 컴파일 스탭의 bibtex대신 biber명령어를 사용하도록 한다.
- usepackage{setspace}는 마지막 printbibliogrphy를 사용했을때 group명령어로 부분적인 표현방식 수정을 할때 유용하게 사용된다.
- renewcommandbibfont{small}의 경우에는 printbibliography에서 출력되는 폰트를 small 사이즈로 지정해주는 경우
- renewbibmacro{in:}{}의 경우 해당 항목이 없을때 printbibliography에서 출력할때 저널이름 앞에 In. Journal of blah blah가 들어가는데 이 부분을 생략해준다.
- addbibresource{abstract.bib} 물론 abstract.bib파일 안에 만들어놓은 레퍼런스들이 있다. 필자는 papers나 mendeley에서 선택해서 자동으로 만들어주는 bib파일을 주로 사용하는데 (이편이 관리가 편하다) 이 경우에는 사람 손으로 수정을 좀 해줘야한다.
- 본문에서 인용
주로 textcite{}와 parencite{}명령어를 활용하는데 위의 옵션 기준으로 전자인 경우 “John and Edwards (2014)” 식으로 만들어지고, 후자의 경우 “(John and Edwards, 2014)”식으로 생성된다. 물론 여러개의 논문을 인용할때는 콤마(,)구분으로 가능하다. 다시말해 textcite{John2000, John2001} 식으로 하면 초기 설정에 바탕을 두어 알아서 인용해준다.
3. 마지막 bibliogrphy출력부분
\begingroup\setstretch{1.0}\bibitemsep{0pt}\printbibliography[heading=none]\endgroup
- 여기서
begingroup, endgroup
세트는 아래에서 몇가지 특정 지역적인 옵션을 적용할것이라는 선언 setstretch{1.0}
의 경우는 줄간격. 현재 전체 문서는 1.2로 되어있으므로 조금 줄간격이 작아진다.setlengthbibitemsep{0pt}
의 경우에는 항목과 항목간의 간격을 의미하는데 쉬운 예로 문단 사이의 간격이라 생각하면 된다.printbibliography
의 경우에는 Reference라고 따로 명시되는것을 제외한 채로 bibliogrphy들을 자동으로 출력해주는 경우Beamer
의 경우
필자의 경우 footnote의 좋은 솔루션을 아직 찾지못했으므로, 그냥 마지막 페이지에 레퍼런스를 몰아놓는 형식으로 하고 있다. 방법은 위와 같은데, printbibliogrphy쪽의 설정만 조금 달라진다.
\begin{frame}[allowframebreaks]
\frametitle{Bibliography}
\printbibliography
\end{frame}
다른것은 기존의 프레임과 같지만 [allowframebreaks]옵션이 자동으로 여러 페이지로 나누어지는것이 포인트다. 타이틀 역시 Bibliogrphy I, II, III등으로 자동으로 지정해준다. 조금 더 디테일한 옵션이 있는 것 같지만, 필요하면 찾아보기로 하고 이 글은 여기까지.
마지막으로 컴파일
당연하게 다음을 활용한다.
pdflatex article.tex biber article pdflatex article.tex pdflatex article.tex
순서는 간단하다. 기본 pdf 생성, biblatex 링크, 기본 pdf에 링크, 그리고 마지막은 링크된 자료들을 엮기 위해 사용한다.
실제로 사용할때는 article.sh등으로 묶은 다음에 bash 명령어로 실행한다.
Leave a Reply