PdfTeX

내위키
Dennis (토론 | 기여)님의 2019년 12월 17일 (화) 13:12 판 (새 문서: <math>\pdfTeX</math> 전자조판 시스템인 TeX의 일종으로 조판 결과물로 TeX의 고유 형식인 DVI 대신 PDF를 내놓는다. 베트남 출신의 정보...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

[math]\displaystyle{ \pdfTeX }[/math]

전자조판 시스템인 TeX의 일종으로 조판 결과물로 TeX의 고유 형식인 DVI 대신 PDF를 내놓는다. 베트남 출신의 정보과학자인 한 더 탄(Hàn Thế Thành)이 체코의 마사리코바대학교에서 유학 생활을 할 때 정보과학 석사 논문의 일환으로 개발해서 1994년에 공개했으며[1], 이제는 TeX에서 DVI 대신 PDF가 표준 출력물이 되다시피 한 근원이라 할 수 있다.

DVI는 PDF와 마찬가지로 장치 독립적으로 똑같은 출력 결과를 보장하는 전자문서 형식이지만 TeX의 고유 글꼴 형식인 METAFONT를 기반으로 하고 있다. METAFONT는 기술적으로 본다면 이게 70년에 나온 게 맞나 싶을 정도로 벡터 그래픽 방식 글꼴을 정교하게 표현할 수 있지만 실제로 이걸로 글꼴을 만들기가 너무 까다롭다는 게 문제다. 게다가 DVI로 문서를 보기 위해서는 TeX의 글꼴 처리 시스템도 함께 설치해야 한다. PDF는 윈도우든 맥이든 운영체제의 글꼴 처리 시스템을 사용할 수도 있고, 크기가 조금 커져도 괜찮다면 아예 글꼴을 문서 안에 내장해 버릴 수도 있다. 그래서 이미 DVI로 결과물을 뽑아낸 다음 PDF로 변환해서 사용하거나 배포하는 사람들이 늘고 있었는데, 아예 DVI 거칠 거 없이 애초에 PDF로 조판해 버리자는 게 pdfTeX의 기본 아이디어.

게다가 METAFONT는 글꼴 하나에 256개의 글자밖에 들어가지 못하는 것도 문제다. 이는 원래 TeX이 유니코드니 뭐니 하는 글자 인코딩 표준이 나오기 전에 만들어졌기 때문인데, 즉 도널드 커누스 교수가 TeX을 만들었을 때에는 T1 글자 인코딩이라는 것을 사용했다.[2]어차피 그때야 라틴 계열 문자만 잘 표현하면 만사 OK였고 그 인코딩 안에 안 들어간 글자를 쓰는 나라에서는 알아서 문제를 해결해야 했다. 유니코드를 지원하는 TeX 시스템이 등장하기 전까지는 TeX에서 한글을 비롯해서 T1 인코딩 안에 안 들어가는 글자를 쓰는 환경에서는 사용하고자 하는 글자를 256 글자씩 쪼개서 각각 METAFONT로 넣은 다음, TeX이 조판을 할 때 찍어내고자 하는 글자에 맞게 글꼴을 바꿔가면서 찍는 편법을 사용했다. 이렇게 하면 어쨌거나 보기에는 한글이나 한자가 들어간 문서를 만들 수 있었지만 정작 조판 문서 안에 저장된 텍스트는 표준 텍스트 인코딩과는 전혀 다른 내용이 들어가 있었기 때문에 문서에서 텍스트 추출을 한다거나 링크를 건다거나 하는 게 불가능했다. TeX이 Omega와 같은 프로젝트를 통해 유니코드를 지원하기 시작하면서 결과물은 어쩔 것인가 하는 문제가 있었는데, DVI를 확장하는 방식으로 해결할 수도 있었지만 그보다는 PDF를 활용하는 방식으로 방향을 틀게 되었다.

pdfTeX도 라틴 계열 문자를 넘어서는 텍스트 추출이나 북마크가 잘 만들어지지 않았고 이는 ko.TeX과 같은 보조 패키지를 사용해야 문제를 보완할 수 있었다. 이후에 글꼴 처리를 시스템의 엔진을 활용하고 다국어 처리에도 더욱 능한 XeTeX이 등장하면서 TeX의 한글을 비롯한 온갖 다국어 문서 처리는 거의 불가능이 없을 정도로 뛰어난 능력을 자랑한다. 현대 문자는 물론이고 옛한글을 비롯해서 온갖 옛 문자, 고대 문자들까지도 잘 처리하기 때문에 이것 때문에 TeX을 쓰는 인문학자들이 있을 정도다.

pdfTeX 개발팀은 지금은 Lua 스크립트 엔진을 사용할 수 있는 시스템인 LuaTeX을 pdfTeX의 뒤를 잇는 프로젝트로 정하고 이쪽 개발에 집중하고 있다.

  1. 당시 개발 배경을 담은 인터뷰를 여기에서 볼 수 있다. (영어)
  2. 정식 이름은 코드 인코딩(Cork Encoding)이다.