TeX
TeX(텍, 또는 테크)는 도널드 크누스(Donald Knuth)가 개발한 고급 조판 시스템으로, 복잡한 수학식과 정밀한 문서 형식을 표현하기 위해 설계된 프로그래밍 가능한 조판 언어이다.
TeX는 1978년 도널드 크누스가 수학 및 과학 논문의 조판 품질을 개선하기 위해 개발하였다. 기존 조판 시스템이 고급 수식 표현이나 정밀한 레이아웃을 지원하지 못하던 한계를 극복하기 위해 만들어졌으며, 특히 수학과 과학 분야에서 높은 품질의 문서 출력을 목적으로 사용된다.
- 완전한 조판 제어 기능: 여백, 글꼴, 정렬 등 세부 요소를 미세하게 조정할 수 있음
- 수식 표현 최적화: 복잡한 수학 공식을 정교하게 표현 가능
- 플랫폼 독립성: 다양한 운영체제에서 동일한 출력 결과 보장
- 안정성 및 일관성: 긴 문서에서도 정확하고 일관된 결과 제공
- 확장성: 매크로와 패키지를 통해 기능 확장 가능
TeX는 일종의 프로그래밍 언어처럼 명령어를 기반으로 문서를 작성한다. 예를 들어, 다음은 간단한 문서 예시이다:
\hbox{Hello, world!}
$$
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$
TeX는 출력 중심 시스템으로, 중간 형식 없이 바로 DVI나 PDF 등의 출력 형식을 생성하는 데 초점을 맞춘다.
TeX는 다음과 같은 구조를 기반으로 한다:
- 프리미티브 명령어(primitive commands): TeX 자체에 내장된 명령어로, 가장 기본적인 기능을 수행
- 매크로(macro): 명령어 집합을 하나의 이름으로 정의하여 재사용 가능
- 토큰화(tokenization): 입력을 의미 단위로 분할하여 처리
- 페이지 구성 엔진: 텍스트를 자동으로 페이지에 맞게 배치
- 수학 및 과학 논문 조판
- 학술서적 출판
- 기술 문서 작성
- 자동 보고서 생성
- 다국어 문서 조판 (특히 유럽 및 아시아 언어)
LaTeX는 TeX 위에 구축된 매크로 패키지로, 보다 쉽게 문서를 작성할 수 있도록 추상화된 인터페이스를 제공한다. TeX는 강력하고 유연하지만 사용이 복잡할 수 있는 반면, LaTeX는 문서의 구조 중심으로 작성하도록 도와주어 사용자 편의성이 높다.
- Knuth의 원본 TeX 소스 코드
- pdfTeX: PDF 출력을 지원하는 확장판
- XeTeX: Unicode 및 OpenType 폰트 지원
- LuaTeX: 스크립팅 언어 Lua를 통합한 확장판
도널드 크누스는 그의 책 *The Art of Computer Programming*의 초기 판이 조악한 품질로 인쇄된 것을 보고, 직접 고품질 조판 시스템 개발을 결심하게 되었다. 1978년 첫 버전이 완성되었으며, 이후 지속적으로 개선되었다. 현재 TeX는 버전 번호가 수학 상수 π(파이)에 수렴하도록 관리되고 있으며, 마지막 버전은 π에 한없이 가까운 값으로 남겨질 예정이다.
- Donald E. Knuth, *The TeXbook*, Addison-Wesley, 1984.
- Donald E. Knuth, *Digital Typography*, CSLI Publications, 1999.
