LuaTeX

LuaTeX는 TeX 계열의 배포판에서 사용되는 엔진 중 하나로, 전통적인 TeX 시스템에 스크립트 언어 Lua 를 통합한 확장 버전이다. Lua 스크립트를 이용해 문서 처리 과정(노드 리스트, 폰트 매핑, 레이아웃 등)을 프로그래밍적으로 제어할 수 있어 다양한 텍스트 및 그래픽 작업을 고도화할 수 있다. 주요 특징은 Unicode 지원, OpenType 폰트 처리, PDF 출력 기능을 제공한다는 점이다.


개요

  • 엔진 종류: pdfTeX 기반에 Lua 인터프리터를 내장한 TeX 엔진.
  • 지원 포맷: PDF 출력(기본), DVI 및 XeTeX 과 유사한 다양한 출력 포맷을 확장 모듈을 통해 지원 가능.
  • 주요 목적: 문서 레이아웃 및 글꼴 처리 과정을 사용자 정의 Lua 스크립트로 세밀하게 제어함으로써 기존 TeX 엔진이 제공하지 못하는 동적인 기능을 구현한다.

역사

  • 개발 시작: 2006년, Taco Hoekwater 등 LuaTeX 프로젝트 팀에 의해 개발이 시작되었다.
  • 첫 베타 발표: 2007년 첫 베타 버전이 공개되었다.
  • 안정화: 2009년 버전 0.6이 안정화되어 TeX Live 2009 배포판에 포함되었다.
  • 주요 배포: 이후 TeX Live 및 MiKTeX 등 주요 TeX 배포판에 정기적으로 업데이트되어 포함되고 있다.

주요 기능

구분 설명
Lua 통합 엔진 내부에 Lua 5.2 이후 버전을 임베드하여, 노드 리스트 조작, 폰트 매핑, 문서 메타데이터 처리 등을 스크립트로 구현 가능.
Unicode 지원 UTF‑8 입력을 기본으로 하며, 다국어 문서·폰트 처리를 원활하게 수행.
OpenType 폰트 luaotfload 라이브러리를 통해 OpenType/TrueType 폰트를 직접 로드하고, 그리프스, 핸드리깅, 언어별 대체 등 고급 기능을 제공.
PDF 출력 pdfTeX과 동일한 PDF 생성 엔진을 사용하면서, Lua 스크립트에 의해 PDF 메타데이터·페이지 레이아웃을 동적으로 조정 가능.
확장성 C 레벨 모듈(luatexbase 등) 및 외부 패키지(luacode, luacode*)와 연동해 기능을 추가·확장할 수 있다.

주요 사용 분야

  • 학술·기술 문서: 복잡한 레이아웃, 자동 색인·주석 삽입, 맞춤형 목차 생성 등에 활용.
  • 출판·디자인: 고급 폰트 피처를 활용한 서체 디자인, 다국어 서적 제작.
  • 자동화·스크립팅: 문서 전처리·후처리, 데이터‑드리븐 차트·표 생성 등 프로그래밍적 접근이 필요한 작업.
  • ConTeXt MkIV: LuaTeX를 기반으로 한 ConTeXt 시스템의 기본 엔진으로 사용된다.
  • LuaLaTeX: LaTeX 포맷을 LuaTeX 엔진과 결합한 LaTeX 배포판으로, 학술·교육 분야에서 널리 이용된다.

관련 프로젝트

  • LuaLaTeX: LaTeX 커널을 LuaTeX 위에서 실행하도록 구성한 포맷.
  • ConTeXt MkIV: ConTeXt 시스템이 LuaTeX 위에서 동작하도록 구현된 버전.
  • luaotfload: LuaTeX 내에서 OpenType 폰트를 로드·처리하기 위한 라이브러리.
  • luacode·luacode*: LaTeX 문서 안에서 Lua 코드를 삽입·실행할 수 있게 해 주는 패키지.

배포 및 라이선스

  • 배포: TeX Live, MiKTeX 등 주요 TeX 배포판에 포함되며, 소스 코드는 CTAN(Comprehensive TeX Archive Network)에서 제공한다.
  • 라이선스: 엔진 자체는 Knuth 가 정의한 “TeX 공용 라이선스”(일종의 GPL 계열) 아래 배포되며, 내장된 Lua 인터프리터는 MIT 라이선스와 호환되는 형태로 포함된다.

참고 문헌

  1. LuaTeX – The Lua-Enabled TeX Engine, TeX Live Documentation, CTAN.
  2. Hoekwater, Taco. “The LuaTeX project”, TUGboat (2008).
  3. “LuaLaTeX – LaTeX format for LuaTeX”, CTAN package documentation.

(※ 본 내용은 현재까지 확인된 공신력 있는 자료를 기반으로 작성되었으며, 추가적인 세부 정보는 공식 문서 및 최신 배포판 Release Note를 참고한다.)

둘러보기

더 찾아볼 만한 주제