나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-06-24 06:46:55

BibTeX

<colbgcolor=#008080,#008080><colcolor=#fff,#fff> BibTeX
파일:BibTeX 로고.svg
종류 파일 포맷
확장자 .bib
링크 파일:홈페이지 아이콘.svg
1. 개요2. 원리3. 문법
3.1. 저자명3.2. article3.3. book3.4. inbook3.5. misc3.6. unpublished
4. 지원5. 여담

1. 개요

서지관리 소프트웨어가 참조(reference list) 및 참고(bibliography) 문헌을 인용(cite)하는 데 필요한 메타적 정보를 기술하는 도메인 특화 언어파일 형식. 이름의 유래는 서지학을 뜻하는 bibliography.

주로 LaTeX 파일에 \begin{filecontents} 로 임베딩해 쓰거나, 별도의 .bib 파일에 작성해 사용한다.

2. 원리

저널이나 연구기관마다 요구하는 수많은 인용/양식이 제각각 다르고, 참조해야 하는 출처(source)의 종류가 논문뿐이 아니다보니 레퍼런스를 손으로 쓰면 한 포맷으로 쓴 인용을 다른 형식으로 바꾸고 통일하는 데 시간과 비용이 많이 들어가게 되며, 특히 학술 데이터베이스와 같은 자동화된 시스템의 구축이 어려워지는 단점이 있다.

결국 도널드 커누스가 개발한 TeXLaTeX이 학계에 보급된 이래로 LaTeX을 컴파일하면서 레퍼런스도 자동으로 생성할 수 있지 않을까? 라는 아이디어로 1985년 개발된 것이 현재의 BibTeX이다.

BibTeX의 .bib 파일은 논문 제목, (공)저자명, 출간 연도, 올라간 저널, DOI 등 개별 인용/양식을 구성하는 데 필요한 주요 정보들을 따로따로 분리하여 가지고 있고, 논문의 저자는 이 .bib 파일을 파일 공유 프로그램이나 저널 사이트 등을 통해 공유하여 다른 학자들이 자신의 출간물을 손쉽게 인용가능(citable)하도록 만들 수 있다. 해당 논문을 인용하고자 하는 학자는 이를 자신의 .bib 파일에 덧붙힌 다음, 출간할 저널이 요구하는 양식(APA, IEEE 등)에 맞추어 \bibliographystyle을 지정하면 .tex 파일을 컴파일하면서 해당 양식에 맞는 인용을 자동으로 생성한다.

3. 문법

기본적으로 @string을 제외하고는 개별 출처마다 블럭 형태의 항목(entry)을 작성한다.
파일:bibtex-entry-syntax.png

각 항목은 출처의 종류(논문, 책 등)에 맞게 항목 유형(entry type)을 정해야 한다. 예를 들어 인용하는 출처가 논문일 경우 @article, 책일 경우 @book이 항목 유형이 된다. 각 유형마다 가지는 정보의 종류가 다르며, 중괄호 안에 이러한 속성들을 <키> = <값> 형태로 나열한다.

각 항목은 고유한 citekey를 가지는데, 이는 개별 참고문헌을 구분하고 본문에서 참조하기 위한 일종의 식별자이다. citekey를 어떻게 지을지는 사용자에게 달려 있으며, 저널 사이트나 서지관리 소프트웨어에서 자동으로 생성되는 알고리즘도 천차만별이다. 슈프링거DOI를 넣기도 한다.

3.1. 저자명

저자명을 구분자 없이 쓸 경우 기본적으로 공백을 기준으로 {<이름> <성>} 순으로 파싱된다. 성이 없는 문화권 출신 저자인 경우 유일한 방법이다. TeX의 발명자인 도널드 커누스를 예시로 각각 APA, IEEE 양식을 적용하면 다음과 같다.
<rowcolor=#fff,#fff> .bib 파일 APA IEEE
author = {Donald Knuth}
Knuth, D.D. Knuth

이름에 공백이 있는 경우 구분자로 공백 대신 ,를 사용해 성과 이름을 구분할 경우 수 있으며, 이 경우 순서가 도치되어 {<성>, <이름>} 순으로 써야 한다.
<rowcolor=#fff,#fff> .bib 파일 APA IEEE
author = {Knuth, Donald}
Knuth, D.D. Knuth

미들네임이 있는 경우, 보통 성 뒤에 적는다. 구분자가 아예 없는 경우, 일반적인 서양식 순서대로 가운데에 적어도 파싱이 된다.
<rowcolor=#fff,#fff> .bib 파일 APA IEEE
author = {Donald Ervin Knuth}
Knuth, D. E.D. E. Knuth
author = {Knuth, Donald Ervin}

주니어(Jr.), 경(Sr.), 2세(II) 등의 접미사가 있는 경우, ,로 구분해 가운데에 적는다. 미들네임이 있는 경우 위와 마찬가지로 성 뒤에 적는다.
<rowcolor=#fff,#fff> .bib 파일 APA IEEE
author = {Stoner, Jr., Winifred Sackville}
Stoner, W. S., Jr.W. S. Stoner Jr.

저자가 여럿 있는 경우, 각 저자를 and로 구분해 기입한다.
<rowcolor=#fff,#fff> .bib 파일 APA IEEE
author = {Ben Green and Terence Tao}
Green, B., & Tao, T.B. Green and T. Tao
author={Soler, José M
and Artacho, Emilio
and Gale, Julian D
and García, Alberto
and Junquera, Javier
and Ordejón, Pablo
and Sánchez-Portal, Daniel}
Soler, J. M., Artacho, E., Gale, J. D., García, A., Junquera, J., Ordejón, P., & Sánchez-Portal, D.J. M. Soler et al.

3.2. article

<rowkeepall><rowcolor=#fff,#fff> 속성명 생략 가능 여부 의미
author X 저자, 공저자
title X 제목
journal X 학술지, 간행매체명
year X 발간(発刊) 연도
volume O 수록 (卷, volume)수. 흔히 vol. 로 쓴다.
number O 수록 (號, issue)수. 흔히 no. 로 쓰며, 같은 연도(또는 권) 내 몇 번째 출판인지를 구분하는 단위이다.
pages O 인용하는 실제 논문(또는 항목)이 위치한 쪽수 범위. 호 하나에 여러 논문을 편집(compile)해 수록해 발행하는 전통적인 방식일 경우 쓰인다.
month O 발간 월
note O 기타 정보

저널, 신문 등 간행매체에 올라온 개별 기사(article)를 인용하기 위한 항목. 주로 논문 인용에 쓴다.

학술 데이터베이스의 전산화 기술이 발달함에 따라 저널 사이트에서 doiissn 등의 필드가 쓰이기는 하나 비표준이다.

3.3. book

<rowkeepall><rowcolor=#fff,#fff> 속성명 생략 가능 여부 의미
author X 저자
editor X 편집자
title X 제목
publisher X 출판사
year X 출판(出版) 연도
volume O 책이 같은 제목 아래 여러 권으로 나뉘어 출판된 경우(예: 파인만의 물리학 강의), 개별 특정 권을 지칭하는 데 쓰인다.
number O 인용되는 출판물이 출판사의 특정 시리즈나 레이블로 수록되어 출판되는 경우, 시리즈 내 위치 정보를 나타내기 위해 쓰인다. 일반적으로 단일 출판물의 경우 쓰이지 않는다.
edition O 개정판이 존재하는 경우, 특정 판(版)을 나타내는 항목. 관례상 대문자로 시작하는 영어 서수(First, Second, 등)로 나타낸다.
pages O 인용하는 실제 내용이 위치한 쪽수 범위. 학술서적처럼 챕터 단위로 인용하는 경우거나, 책이 너무 길어 인용한 부분을 찾기 쉽도록 할 때 쓰인다. 이 경우 인용 사이트에서 @inbook을 생성해주는 경우도 있다.
month O 출판 월
note O 기타 정보

출판사 또는 슈프링거와 같은 학술 출판 기관에 의해 정식 출판된 도서를 인용할 때 쓰인다. 정식 출판사가 없거나 출판 기관이 없는 경우, 배포 기관이 출판을 전문으로 하는 기관이 아닐 경우 @booklet을 사용한다.

3.4. inbook

<rowkeepall><rowcolor=#fff,#fff> 속성명 생략 가능 여부 의미
author X 저자
editor X 편집자
title X 챕터명
booktitle X 해당 챕터가 수록된 원본 책의 제목
publisher X 출판사
year X 출판(出版) 연도
volume O 책이 같은 제목 아래 여러 권으로 나뉘어 출판된 경우(예: 파인만의 물리학 강의), 개별 특정 권을 지칭하는 데 쓰인다.
number O 인용되는 출판물이 출판사의 특정 시리즈나 레이블로 수록되어 출판되는 경우, 시리즈 내 위치 정보를 나타내기 위해 쓰인다. 일반적으로 단일 출판물의 경우 쓰이지 않는다.
edition O 개정판이 존재하는 경우, 특정 판(版)을 나타내는 항목. 관례상 대문자로 시작하는 영어 서수(First, Second, 등)로 나타낸다.
pages O 인용하는 실제 내용이 위치한 쪽수 범위. 학술서적처럼 챕터 단위로 인용하는 경우거나, 책이 너무 길어 인용한 부분을 찾기 쉽도록 할 때 쓰인다. 이 경우 인용 사이트에서 @inbook을 생성해주는 경우도 있다.
month O 출판 월
note O 기타 정보

3.5. misc

<rowkeepall><rowcolor=#fff,#fff> 속성명 생략 가능 여부 의미
author O 저자
title O 제목
howpublished O 어떠한 사전 등록된 출처 유형(entry)에도 해당하지 않는 경우, 해당 출처가 공개된 경로, 유통 경로 등을 수동으로 기입한다. 후술하지만 주로 \url{} 등이 사용한다.
month O 작성 월
year O 작성 연도
note O 기타 정보

위 모든 항목에 해당하지 않는 출처로, 모든 필드가 생략 가능하다.

사실상 웹사이트 출처를 넣기 위해 쓰인다. BibLaTeX은 자체적인 @online 엔트리와 url, urldate등의 필드를 지원하지만, BibTeX은 아직도 별도의 엔트리 타입을 지원하지 않기 때문.

주로 \usepackage{url} 패키지를 사용해 howpublishedURL을 기입하고, 대부분의 인용 양식에 표시되지는 않지만 note에 마지막으로 읽은 날짜를 기록하는 게 관례이다.

예를 들어, 나무위키의 본 문서 r53버전을 참조하려면
@misc{namuBibTeX,
  title = {{BibTeX}},
  howpublished = {\url{https://namu.wiki/w/BibTeX?uuid=0bfb6485-2260-49b1-a3d5-1b80ff6bbc14}},
  year = 2025,
  note = {Accessed: 2025-06-22}
}    
와 같이 쓸 수 있다.

3.6. unpublished

<rowkeepall><rowcolor=#fff,#fff> 속성명 생략 가능 여부 의미
author X 저자, 공저자
title X 제목
note X 기타 정보
month O 공개 월
year O 공개 연도

출판전 논문 등 원고 작성은 되어 있으나 미출판(unpublish)된 출처를 참조할 때 쓰인다.

4. 지원

식별자를 수정하거나 하는 경우를 제외하면 처음부터 손으로 작성하는 경우는 드물다. 대부분의 학술지 및 저널 사이트, 소프트웨어에서는 OA가 아니더라도 인용 용도로 BibTeX 파일을 자동으로 생성해 주고, 이를 다운로드 또는 수동으로 복사하여 논문 작성에 사용할 수 있다.

심지어 arXiv나 figshare 등의 사이트도 사이트에서 export BibTeX citation 버튼을 눌러서 생성할 수 있으며, 이후 저널에 게재된 경우 해당 저널 기준으로 생성해준다. arxiv2bibtex.org와 같은 툴을 사용할 수도 있다. 다만 공식 사이트에서 생성하는 경우 정확히는 BibTeX이 아닌 BibLaTeX 파일을 생성해주기 때문에, 사용하는 서지 소프트웨어가 이를 지원하는지 주의해야 한다. 예시로 Attention Is All You Need를 인용하면 다음이 생성된다.
@misc{vaswani2023attentionneed,
  title = {Attention Is All You Need}, 
  author = {Ashish Vaswani and Noam Shazeer and Niki Parmar and Jakob Uszkoreit and Llion Jones and Aidan N. Gomez and Lukasz Kaiser and Illia Polosukhin},
  year = {2023},
  eprint = {1706.03762},
  archivePrefix = {arXiv},
  primaryClass = {cs.CL},
  url = {https://arxiv.org/abs/1706.03762}, 
}

DOI를 알고 있는 경우 doi2bib.org 등을 쓸 수도 있다.

IETFRequest for Comments의 경우 공식 datatracker에서 기본적으로 BibTeX 생성을 지원한다. 가령 RFC 2119을 인용한다면 rfc2119/bibtex페이지에 들어갈 경우
@misc{rfc2119,
  series = {Request for Comments},
  number = 2119,
  howpublished = {RFC 2119},
  publisher = {RFC Editor},
  doi = {10.17487/RFC2119},
  url = {https://www.rfc-editor.org/info/rfc2119},
  author = {Scott O. Bradner},
  title = {{Key words for use in RFCs to Indicate Requirement Levels}},
  pagetotal = 3,
  year = 1997,
  month = mar,
  abstract = {In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.},
}
와 같은 BibTeX을 생성해준다.

GitHub의 경우 Citation File Format에 맞게 CITATION.cff 파일을 저장소에 추가하면 웹 UI에서 해당 저장소 코드를 참조할 수 있도록 BibTeX을 만들어준다.# 예를 들어 citation-file-format/citation-file-format 저장소를 인용하면
@software{Druskat_Citation_File_Format_2021,
  author = {Druskat, Stephan and Spaaks, Jurriaan H. and Chue Hong, Neil and Haines, Robert and Baker, James and Bliven, Spencer and Willighagen, Egon and Pérez-Suárez, David and Konovalov, Olexandr},
  doi = {10.5281/zenodo.5171937},
  license = {CC-BY-4.0},
  month = aug,
  title = {{Citation File Format}},
  version = {1.2.0},
  year = {2021}
}
와 같은 BibTeX을 생성해준다. 파일 이름이 CITATION.bib인 경우, BibTeX을 파싱하지 않고 단순 복사용으로 지원하기도 한다.#

위키피디아도 기본적으로 cite this page 특수 문서에서 BibTeX 생성을 지원한다. 가령 BibTeX 문서를 cite하면
@misc{enwiki:1292191730,
  author = "{Wikipedia contributors}",
  title = "BibTeX --- {Wikipedia}{,} The Free Encyclopedia",
  year = "2025",
  url = "https://en.wikipedia.org/w/index.php?title=BibTeX&oldid=1292191730",
  note = "[Online; accessed 22-June-2025]"
}
가 생성된다.

5. 여담

TeX과 다르게 매크로가 아닌 별도의 포맷인 만큼 \TeX 등의 로고 명령어가 없는데, hologo 패키지에서 \hologo{BibTeX} 으로 BibTeX 로고를 넣을 수 있다.#