LaTeX(/ˈleɪtɛk/레이텍[*] 또는 /ˈlɑːtɛk/라텍[*]), 흔히 LaTeX라고 표기하는 LaTeX는 문서 조판을 위한 소프트웨어 시스템으로, TeX 조판 시스템을 기반으로 한다. LaTeX는 TeX을 더 쉽게 사용할 수 있도록 높은 수준의 서술적 마크업 언어를 제공한다. TeX이 문서의 레이아웃을 처리하는 동안, LaTeX은 문서 처리의 내용 측면을 다룬다. 일반 TeX의 서식 명령은 기초적인 수준이기 때문에, LaTeX은 장 제목, 각주, 상호 참조, 서지 정보와 같은 서식 및 레이아웃 요구 사항을 위한 기성 명령을 작성자에게 제공한다.
LaTeX은 1980년대 초 레슬리 램포트가 SRI 인터내셔널에서 처음 작성했다. 현재 버전은 LaTeX2e로, 1994년에 처음 출시되었으며 2015년부터 점진적으로 업데이트되고 있다. 이 업데이트 정책은 1989년부터 개발 중이던 LaTeX3의 별도 출시 계획을 대체했다. LaTeX은 자유 소프트웨어이며 레이텍 프로젝트 공중 사용 허가서(LPPL)에 따라 배포된다.
TeX과 마찬가지로 LaTeX은 원래 수학자와 컴퓨터 과학자를 위한 글쓰기 도구로 시작했으나, 개발 초기부터 복잡한 수학 표현이 포함된 문서를 작성해야 하는 학자들에게도 채택되었다. 아랍어, 데바나가리 문자, 중국어와 같은 비라틴 문자 체계의 경우, UTF-8 인코딩을 지원하기 위해 특수한 패키지와 컴파일러가 필요하다.
역사
1980년대 초, 레슬리 램포트는 SRI에서 일하면서 자신만의 TeX 매크로를 작성해야 했다. 그는 약간의 추가 노력만 기울이면 다른 사람들도 사용할 수 있는 일반 패키지로 만들 수 있다고 생각했다. 그렇게 하여 그는 1984년과 1985년에 자신의 LaTeX 매크로 버전을 출시했다. 애디슨-웨슬리의 편집자였던 피터 고든은 램포트에게 출판을 위한 LaTeX 사용자 설명서를 작성하도록 설득했다. 램포트는 처음에는 누가 돈을 주고 이것을 살지 회의적이었으나, 1986년에 출간되어 수십만 부가 판매되었다. 1989년 8월 21일, 스탠퍼드에서 열린 TeX 사용자 그룹(TUG) 회의에서 램포트는 LaTeX의 유지 관리와 개발을 프랭크 미텔바흐에게 넘기기로 합의했다. 미텔바흐는 크리스 롤리, 라이너 쇳프와 함께 LaTeX3 팀을 결성했고, 1994년에 현재의 표준 버전인 LaTeX2e를 발표했다. LaTeX3는 별도의 형식으로는 단종되었으며, 2018년부터는 LaTeX2e 내의 프로그래밍 계층이 되었다.
조판 시스템
LaTeX은 내용과 표현의 분리라는 디자인 철학을 따르려고 노력하므로, 작성자는 시각적인 외관을 동시에 신경 쓰지 않고 작성 중인 내용에 집중할 수 있다. LaTeX 문서를 준비할 때 작성자는 장, 절, 표, 그림 등의 명령을 사용하여 논리적 구조를 지정하고, LaTeX 시스템이 이러한 구조의 서식과 레이아웃을 처리하게 한다. 결과적으로 이는 레이아웃과 내용의 분리를 장려하면서도 필요할 때마다 수동 조판 조정을 허용한다. 이 개념은 많은 워드 프로세서가 문서 전체에 대해 스타일을 전역적으로 정의할 수 있게 하거나, HTML 문서의 스타일을 지정할 때 CSS를 사용하는 메커니즘과 유사하다.
LaTeX 시스템은 조판과 렌더링을 처리하는 마크업 언어이며, 기본 매크로 언어를 사용하여 새로운 환경이나 명령과 같은 사용자 정의 매크로를 개발함으로써 임의로 확장할 수 있다. 이러한 매크로는 종종 패키지로 수집되며, 특정 조판 요구 사항(예: amsmath 패키지에서 제공하는 align 환경을 사용하여 정렬된 방정식을 생성하는 것)을 해결하는 데 사용할 수 있다.
LaTeX으로 문서를 만들려면 사용자는 먼저 일반적으로 문서 편집기를 사용하여 document.tex와 같은 파일을 만든다. 그 후 사용자는 LaTeX 매크로가 로드된 TeX 프로그램에 document.tex 파일을 입력으로 제공하며, TeX은 화면 보기나 인쇄에 적합한 파일을 작성한다. 이러한 작성-형식-미리보기 주기는 LaTeX 작업이 위지위그(WYSIWYG) 스타일의 문서 편집과 다른 주요 방식 중 하나이다. 이는 컴퓨터 프로그래머에게 알려진 코드-컴파일-실행 주기와 유사하다. 오늘날 많은 LaTeX 인식 편집 프로그램은 입력 창 옆에 출력 미리보기를 표시하면서 키 하나를 누르는 것만으로 이 주기를 간단하게 처리한다. 일부 온라인 LaTeX 편집기는 미리보기를 자동으로 새로 고침하기도 하며, 다른 온라인 도구는 단일 창에서 미리보기와 함께 점진적인 내부 편집을 제공한다.
이름 속의 'T', 'E', 'X' 문자는 그리스 문자대문자타우, 엡실론, 키에서 유래했는데, 이는 TeX이라는 이름 자체가 고대 그리스어:τέχνη('기술', '예술', '기법')에서 유래했기 때문이다. 이러한 이유로 TeX의 창시자인 도널드 커누스는 이를 /tɛx/(즉, 현대 그리스어의 무성 연구개 마찰음이나 로흐의 'ch'와 같은 발음)로 읽는 것을 권장한다. 램포트는 "TeX은 보통 테크(tech)로 발음되므로 라테크(lah-tech), 라테크(lah-tech), 레이테크(lay-tech)가 논리적인 선택이지만, 언어가 항상 논리적인 것은 아니므로 레이텍스(lay-tecks)도 가능하다"라고 언급했다.
이 이름은 본문에서 타이포그래피 로고: LaTeX로 인쇄된다. 본문에서 로고를 정확하게 재현할 수 없는 미디어에서는 일반적으로 고유한 대문자 표기법인 LaTeX으로 표기한다. 또는 TeX, LaTeX, 및 XeTeX 로고는 내부 \LaTeX 매크로 사양을 따라 그래픽 웹 브라우저에서 사용하기 위해 순수 CSS와 XHTML로 렌더링될 수도 있다.
예시
아래 예시는 LaTeX에 대한 입력과 시스템에서 생성된 해당 출력을 보여준다.
입력
출력
\documentclass{article}% 아티클 시작\usepackage{amsmath}% amsmath 임포트\title{\LaTeX}% 제목\begin{document}% 문서 시작\maketitle\LaTeX{}은 \TeX{} 조판 프로그램을 위한 문서 준비 시스템입니다.
프로그래밍 가능한 탁상출판 기능과 번호 매기기,
상호 참조, 표와 그림, 페이지 레이아웃, 서지 정보를 포함한
조판 및 탁상출판의 대부분 측면을 자동화하는 광범위한 기능을 제공합니다.
\LaTeX{}은 1984년 레슬리 램포트가 처음 작성했으며
\TeX을 사용하는 지배적인 방법이 되었습니다. 이제 순수 \TeX을
직접 작성하는 사람은 거의 없습니다. 현재 버전은 \LaTeXe입니다.
% 이것은 주석이며 최종 출력에는 표시되지 않습니다.% 다음은 LaTeX의 조판 능력을 보여줍니다:\begin{align} E_0 &= mc^2\\ E &=\frac{mc^2}{\sqrt{1-\frac{v^2}{c^2}}}\end{align}\end{document}
매크로 패키지로서 LaTeX은 TeX이 해석할 수 있는 매크로 세트를 제공한다. TeX을 위한 다른 많은 매크로 패키지가 있는데, 여기에는 Plain TeX, AMSTeX, Chemfig, chemmacros, PSTricks, PSfrag, ConTeXt 등이 있다.
TeX이 문서를 "컴파일"할 때, (사용자의 관점에서) 매크로 → TeX → 드라이버 → 출력의 처리 순서를 따른다. 이러한 각 단계의 다양한 구현체는 일반적으로 TeX 배포판에서 사용할 수 있다. 전통적인 TeX은 보통 포스트스크립트 파일로 변환되는 DVI 파일을 출력한다. 2000년에 한테타잉 등은 PDF로도 출력하고 해당 형식에서 사용 가능한 기능을 활용하는 pdfTeX이라는 TeX 구현체를 작성했다. 반면 조나단 큐가 개발한 XeTeX 엔진은 최신 글꼴 기술과 유니코드를 TeX과 결합한다. LuaTeX은 Lua를 임베디드 스크립트 언어로 사용하는 pdfTeX의 확장 버전이다.
호환성 및 변환기
LaTeX 문서(*.tex)는 모든 문서 편집기로 열 수 있다. 이는 일반 텍스트로 구성되며 숨겨진 서식 코드나 이진 파일 정보가 포함되어 있지 않다. TeX 문서는 LaTeX 파일을 오픈도큐먼트, XML 또는 클래스(*.cls) 파일과 같은 다른 형식으로 렌더링하여 공유할 수도 있다. LaTeX은 LaTeX 확장인 pdfLaTeX을 사용하여 PDF 파일로 렌더링할 수도 있으며, 실제로도 흔히 그렇게 사용된다. 유니코드 텍스트가 포함된 LaTeX 파일은 inputenc 패키지를 사용하거나 TeX 확장인 XeLaTeX 및 LuaLaTeX을 통해 PDF로 처리할 수 있다.
TeX4ht는 TeX 및 LaTeX 문서를 HTML 및 특정 XML 형식으로 변환할 수 있는 변환기이다. 현재 모든 TeX 배포판에 미리 구성되어 포함되어 있다.
HeVeA는 OCaml로 작성된 변환기로, LaTeX 문서를 HTML5로 변환한다. 이를 통해 주로 인쇄용으로 조판된 과학 논문 등의 문서를 온라인 열람을 위해 월드 와이드 웹에 게시할 수 있다. 이는 Q 공중 사용 허가서에 따라 라이선스된다.
LaTeX2HTML은 펄로 작성된 변환기로, LaTeX 문서를 HTML로 변환한다. GPL v2에 따라 라이선스된다. 최신 업데이트는 CTAN에서 이용할 수 있다.
LaTeX2RTF는 C로 작성된 변환기로, LaTeX 문서를 RTF로 변환한다. GPL v2 이상에 따라 라이선스된다.
Pandoc은 LaTeX(및 기타 형식)을 HTML5, EPUB, 오픈도큐먼트(*.odt), 마이크로소프트 오피스 오픈 XML (*.docx), 심지어 위키백과에서 사용하는 미디어위키 마크업을 포함한 많은 다른 파일 형식으로 변환할 수 있는 "범용 문서 변환기"이다. GPL v2에 따라 라이선스된다.
LaTeX은 과학 문서에서 수학적 표현을 조판하는 사실상 표준이 되었다. 따라서 MathML이나 컴퓨터 대수 시스템으로의 변환기 등 수학적 LaTeX 표현에 중점을 둔 여러 변환 도구가 존재한다.
매스잭스는 LaTeX을 MathML, SVG 및 PNG를 포함한 그림 형식, 또는 웹 페이지 내에 포함하기 위한 HTML로 변환하는 자바스크립트 라이브러리이다.
위키미디어 재단은 위키백과에서 사용되는 수학 공식을 렌더링하기 위해 Node.js를 사용하는 웹 서비스인 Mathoid를 구축하는 데 매스잭스를 사용한다.
KaTeX은 LaTeX을 HTML 및 MathML로 변환하는 자바스크립트 라이브러리이다. 칸 아카데미에서 개발했으며 가장 빠른 LaTeX-HTML 변환기 중 하나이다.
라이선스
LaTeX은 일반적으로 일반 TeX과 함께 자유 소프트웨어 라이선스인 레이텍 프로젝트 공중 사용 허가서(LPPL)에 따라 배포된다. LPPL은 수정된 파일이 원본과 명확하게 구별되어야(보통 파일 이름 변경을 통해) 한다는 점을 요구하기 때문에 GNU 일반 공중 사용 허가서와는 라이선스 호환성이 없다. 이는 다른 파일에 의존하는 파일이 예상대로 작동하도록 보장하고 의존성 지옥을 방지하기 위해 수행되었다. LPPL은 버전 1.3부터 데비안 자유 소프트웨어 지침(DFSG)을 준수한다. 자유 소프트웨어로서 LaTeX은 대부분의 운영 체제에서 사용할 수 있다.
LaTeX2e는 1994년 LaTeX 2.09를 대체한 이후의 현재 LaTeX 버전이다. 2020년 기준으로, 1990년대 초에 시작된 LaTeX3는 장기 개발 프로젝트 진행 중이다. 계획된 기능으로는 개선된 구문(내용과 스타일의 분리), 하이퍼링크 지원, 새로운 사용자 인터페이스, 임의 글꼴 액세스 및 새로운 문서화가 포함된다. 일부 LaTeX3 기능은 패키지를 사용하여 LaTeX2e에서 사용할 수 있으며, 2020년까지 많은 기능이 점진적인 전환을 위해 기본적으로 LaTeX2e에서 활성화되었다.
전체 TeX 시스템에 대한 많은 상용 구현체가 존재한다. 시스템 공급업체는 추가 글꼴이나 전화 지원과 같은 추가 기능을 더할 수 있다. LyX는 LaTeX을 백엔드로 사용하는 자유 소프트웨어이자 위지위임(WYSIWYM) 시각적 문서 프로세서이다. TeXmacs는 LaTeX과 유사한 기능을 가진 자유로운 위지위그 편집기이지만 조판 엔진은 다르다. LaTeX을 생성하는 다른 위지위그 편집기로는 윈도우와 macOS에서 사용 가능한 Scientific Word가 있다.
커뮤니티에서 지원하는 많은 TeX 배포판을 이용할 수 있다.
채택
LaTeX은 복잡한 수학 표기법에 대한 지원 덕분에 학계에서 과학 문서의 의사소통 및 출판과 기술적인 노트 작성을 위해 널리 사용된다. 또한 아랍어나 그리스어와 같은 복잡한 다중언어 자료가 포함된 책이나 논문을 준비하고 출판하는 데도 중요한 역할을 한다. LaTeX은 출력을 형식화하기 위해 TeX 조판 프로그램을 사용하며, 그 자체도 TeX 매크로 언어로 작성되었다.
LaTeX은 독립형 문서 준비 시스템으로 사용하거나 중간 형식으로 사용할 수 있다. 예를 들어 후자의 역할로는 닥북 및 기타 XML 기반 형식을 PDF로 번역하는 파이프라인의 일부로 가끔 사용된다. 이 조판 시스템은 프로그래밍 가능한 탁상출판 기능과 표 및 그림의 번호 매기기 및 상호 참조, 장 및 절 제목, 그래픽, 페이지 레이아웃, 색인 및 서지 정보를 포함한 조판 및 탁상출판의 대부분 측면을 자동화하는 광범위한 기능을 제공한다.
12Alexia Gaudeul (June 2007). “Do Open Source Developers Respond to Competition?: The (La)TeX Case Study”. 《Review of Network Economics》6 (2). doi:10.2202/1446-9022.1119. S2CID201097782.
↑Schubotz, Moritz; Wicke, Gabriel (2014). 〈Mathoid: Robust, Scalable, Fast and Accessible Math Rendering for Wikipedia〉. 《Intelligent Computer Mathematics – International Conference》. CICM. Lecture Notes in Computer Science. Springer. 224–235쪽. arXiv:1404.6179. doi:10.1007/978-3-319-08434-3_17. ISBN978-3-319-08433-6.