TeX

내위키
Dennis (토론 | 기여)님의 2015년 5월 31일 (일) 23:26 판 (→‎글꼴)

조판 프로그램. 이공계 대학원생, 특히 수학 전공 대학원생들의 공공의 적.

역사

스탠포드대학교의 컴퓨터 과학자 도널드 커누스(Donald Knuth) 교수가 자신의 책 <The Art of Computer Programming>[1] 개정판 내려다가 출판사가 보내 온 교정본의 조판 품질에 빡친 것이 시작이다. 커누스 교수는 당시 초창기 단계였던 디지털 조판 장비를 최대한 활용할 수 있는 조판 시스템을 직접 만들어 보기로 결심했다. 가끔 휴대폰 가게에 "싼 휴대폰 찾다가 빡쳐서 직접 차린 집"이라는 문구가 붙어 있는 걸 볼 수 있는데, TeX은 "좋은 조판 시스템 찾다가 빡쳐서 직접 만든 시스템"이 되시겠다. 그리고 수많은 이공계 대학원생들이 빡치고 있다.

특징

텍스트에 마치 프로그래밍을 하듯이 명령어를 넣어서 문서의 구성이나 모양을 만든다. 이 점이 TeX을 어렵게 만드는 가장 큰 원인이다. 대회상자로 문서의 모양을 잡고 글꼴을 바꾸면 화면에 바로 그 결과가 나타나는, WYSIWYG(What You See Is What You Get) 방식의 워드프로세서나 조판 프로그램에 익숙해져 있디면 마치 윈도우만 쓰다가 DOS 혹은 유닉스의 명령행 쉘을 쓸 때와 같은 멘붕 상태에 빠질 것이다. 하지만 프로그래밍이나 HTML에 익숙해 있다면 생각보다는 어렵지 않다.

수식 조판에 대단한 강점을 가지고 있다. TeX의 난이도에 빡치더라도 수식 편집에 오는 순간 왜 TeX을 그렇게 쓰라고 하는지 절절하게 느끼게 된다. 굉장히 복잡한 수식도 상당히 논리적으로 표현할 수 있다. 수학과 교수 쯤 되면 몇 페이지에 걸친 수식도 TeX으로 척척 만들어 낸다. 그러니까 수학 잘하는 사람보다 TeX 잘하는 사람이 교수되는 건가?

TeX이 하도 쓰기 어렵다 보니, TeX을 기반으로 해서 좀 더 쓰기 쉽게 만든 LaTeX이 나왔다. 오늘날 TeX을 쓰는 대다수 사람들은 LaTeX으로 작업한다. LaTeX이 TeX보다는 훨씬 쉽지만 어디까지나 'TeX보다'다. TeX이 박사 과정이라면 LaTeX은 석사 과정 쯤으로 생각하면 된다.

워드프로세서 혹은 조판 프로그램으로는 호환성이 최강이다. 거의 모든 유닉스 계열 운영체제에서 다 돌아가며 맥이나 윈도우도 당연히 지원한다. 사실 도널드 커누스 교수는 웹(WEB)[2]이라는, 추상적인 형태의 언어로 TeX을 만들었는데, WEB을 각 운영체제에 맞는 적당한 프로그래밍 언어로 번역해 주면 되므로 호환성이 좋다. 보통 TeX 프로그램은 Web2C라는, WEB을 C로 변환한 다음 컴파일하는 방식으로 만든다.

C 언어 컴파일러가 소스 코드 파일을 컴파일해서 실행 파일을 만들어 내듯, TeX은 소스 문서 파일을 컴파일해서 DVI(DeVice Independent, 장치 독립) 형식의 전자문서 파일을 만든다. 당연히 DVI도 커누스 교수가 만든 형식. 말 그대로 장치 독립이라서 TeX이 깔려 있는 시스템이라면 어떤 운영체제로 가지고 가든 똑같은 출력을 보장한다. PDF가 널리 퍼지면서부터는 DVI를 PDF로 바꿔주는 변환 프로그램이 등장했고, 최근에는 아예 PDF를 바로 만들어 주는 PDFTeX이 널리 쓰이고 있다.

글꼴

커누스 교수는 TeX에 쓸 글꼴을 위한 메타폰트(METAFONT)라는 것도 만들었다. 굉장히 뛰어난 품질의 글꼴을 (알파벳 한정으로) 만들어 낸다. TeX에서 쓸 때에는 이걸 가지고 출력 장치의 해상도에 맞는 비트맵 글꼴인 TFM 파일을 만든다. 컴퓨터가 더럽게 느리던 시절에는 아예 처음 TeX을 설치할 때 여러 가지 해상도와 글자 크기에 맞는 TFM 파일을 만들어내는 작업을 했는데 이것만 한나절 걸렸다. 그래도 한 번 만들어 놓으면 문서 컴파일할 때에는 시간이 대폭 단축되었으니까 참았던 것.

한글 사용자에게 가장 문제는 이 메타폰트가 256 글자만 지원한다는 것이었다. 곧, 알파벳 라틴 계열 문자 세트만 지원한다. 이 당시의 한글 TeX은 문제 해결 방법으로 한글 글자를 여러 개의 글꼴로 분산시킨 다음에 글자에 따라서 계속 글꼴을 바꿔가면서 찍었다. 예를 들어, 명조체 2,360자 완성형 한글 글꼴 한 벌을 256 글자가 들어갈 수 있는 글꼴 10개 (명조01, 명조02...)로 분산시키고 조판할 때에는 그 글자가 들어 있는 글꼴로 바꿔 가면서 찍는 것이다. 조판 결과 한글은 보이지만 최적화와는 뭔가 거리가 멀고, 결과물로 만들어진 DVI나 PDF에서는 한글 텍스트 추출이 안 되는 것도 문제였다. 최근에는 트루타입이나 오픈타입 글꼴을 그대로 쓸 수 있는 XeTeX이 각광을 받고 있는 중.

각주

  1. 컴퓨터 과학계에서는 정말로 손꼽히는 알고리즘 분야의 명저다.
  2. 인터넷의 월드 와이드 웹(World Wide Web)과는 전혀 관계 없다. 일단 그때는 인터넷이 없었잖아.