LaTeX
[clearfix]
1. 개요
자연과학이나 인문과학중 수식, 그래프, 다이어그램을 많이 그리는 학자들에게 유용한 문서 저작도구이다. 문서 작성 도구의 일종으로, 논문이나 출판물 등의 특수 형식 문서를 작성하는 데 쓰이는 시스템이다.
2. 상세
LaTeX은 TeX의 확장성을 이용하여 TeX을 좀더 쉽게 쓸 수 있도록 하여준 매크로 집합으로도 볼 수 있다.
'라텍스' 가 아닌 '''"레이텍"''' 혹은 '''"라텍'''"이라고 읽는다. 한글 TeX사용자 그룹에서 배포했던 메뉴얼에서 처음 LaTeX 발표시 자리에 모여 있던 학자들이 '''"라텍'''"으로 발음했다고 언급한다. 이렇게 읽는 이유는 LaTeX의 모체인 TeX의 X가 라틴 문자 X(엑스)가 아니라 그리스 문자 Χ(키, 카이)를 뜻하기 때문이다. 따라서 조사를 붙일 때도 'LaTeX는', 'LaTeX를'이 아니라 'LaTeX은', 'LaTeX을'이라고 해야 맞다.
TeX의 최초 개발자는 현재 스탠포드 대학교 컴퓨터과학과 명예교수인 도널드 크누스[1] (1938~ )로, 자신이 프로그래밍에 대한 책을 쓰려다 보니 적당한 조판 시스템이 없어 개발했다고 한다. 보통 이를 Typesetting(타입세팅) 시스템이라 부르는데 MS 워드처럼 WYSIWYG(What You See Is What You Get)방식으로 문서를 작성하는 것과 반대로 마치 프로그래밍을 하듯 (혹은 마크업 랭귀지로 문서를 작성하듯이) 문서 작성을 하는 과정을 의미한다(WYSIWYM: What You See Is What You Mean). 쉽게 말하자면 아래아 한글의 수식 입력 시스템으로 모든 문서를 작성한다고 생각하면 편하다[2] . 나무위키 문서를 작성할 때 목차나 각주를 넣는 작업도 비슷하다 볼 수 있다.
본디 출발은 텍스트 위주의 문서를 작성하는 TeX이었으나, 여러 가지 기능들이 덧대어져 LaTeX으로 진화했으며, 결국에는 출판물을 작성할 수 있는 강력한 도구로 탄생하였다. 1980년에 Leslie Lamport에 의해 작성되어 지금까지 내려오는 중이다. TeX의 접근법은 본래 아무리 간략화와 매크로화를 시킨다 하더라도 시각적 조판의 측면에는 근본적으로 불리함이 있었으나 작성되는 문서의 사용분야라는 특성에 잘 부합되고, 무엇보다 다른 방식으로는 영 번거로워지는 수식 편집 측면에서 강점이 있기 때문에 높게 평가되고 있다.
WYSIWYG 워드프로세서가 글을 보면서 입력하고 원하면 모양을 꾸미는 과정으로 작성을 진행하는 반면, LaTeX은 전체 글의 구조가 미리 정해진 특정 규격들에 맞추어 작성한 텍스트 문서에 글의 내용과 해당 서식을 나타내는 기호들을 쫙 짜맞춰서 프로그램에게 제출하면 결과물을 도출한다는 개념으로 진행된다. 마치 소스를 작성 후 컴파일러를 돌려서 실행 파일을 만드는 것처럼, 문서 소스를 만들고 컴파일러를 돌려서 문서(요즘은 주로 PDF)를 만든다고 생각하면 된다.
따라서 근본에 두고 있는 개념부터가 대단히 학계 지향적이고 사용자의 지적 구성력에 상당 부분이 전가되는 부분이 많아 이러한 철학에 생소한 사람에게 설명할 경우 그럼 이게 금형기계지 워드냐 하는 반응이 돌아오기도 한다. 실제로 흔히 생각하는 워드 프로세서는 아닌 것이, 워드프로세서에게서 WYSIWYG 기능을 완전히 박탈하고 프로그래머적 마인드로 자동화를 극한까지 밀어붙여 '조판'만 남겼기 때문. 워드나 한글에만 익숙하던 컴공과 학생이 처음 접하는 경우, 숙제하면서 디버깅했는데 보고서 쓰면서 디버깅하는 멘붕 상황을 경험하게 된다. 반면, 잘 만들어진 템플릿을 이용하여 작성자는 내용과 구조에만 신경을 쓰고, 이를 편집자(즉 LaTeX)가 예쁘게 고친다는 협업 체제로도 볼 수 있다. 사용자가 입맛대로 세세한 부분을 변경시키며 사용하려고 하지 않는다면, 명령어 30개 수준으로 단시간에 아래아 한글이나 MS워드보다도 미려한 문서를 얻을 수 있다.
또한, LaTeX 안에 beamer class를 이용하여 프리젠테이션 파일도 만들 수 있다. LaTeX에 익숙해진 이과생들은 막상 PPT나 word를 쓰려고 하면 불편해 한다. 심지어 어떤 공돌이는 LaTeX 안에서 본인이 원하는 그림을 그리기도 한다. 그림의 예시는 여기에 들어가보면 일부 예시를 볼 수 있다.
주로 학계, 특히 수식이 많이 필요한 자연과학, 공학, 사회과학 계열에서 많이 사용되며[3] 기능이 막강하기 때문에 출판물 퀄리티의 문서를 작성하는 데 사용할 수 있기에 개인적인 퍼블리셔들이나 데스크 탑 퍼블리싱(개인 컴퓨터로 출판물을 만드는 행위)등에도 많이 사용 된다. 이렇게 각광받는 이유는 페이지 넘버는 물론, 각주, 미주, 목차, 레퍼런스, 페이지 레이아웃, 테이블, 그림 삽입 등 출판물 등급에 필요한 필수요소들을 손쉽게(WYSIWYG 워드 프로세서들만 사용하던 사람들이 처음 익히기에는 복잡하지만) 구현할 수 있기 때문이다. 특히 순서, 서식, 내용이 극도로 정형적인 학계 문서는 규격에 꼭 맞춰 틀에 찍듯이 만들어야 하기 때문에, 학계의 사랑을 받을 수밖에 없었으며, 한때는 사실상 표준이었다.
또한, 문서작업을 할때 소스를 작성하고 수정 하므로, 문서가 커진다 해도 잡아먹는 컴퓨터 리소스가 매우 적다. 몇백페이지 짜리 논문을 작성한다고 했을때, 워드로 작성하면 수많은 수식과 그림들로 인해 렉이 생기가 십상이지만, LaTeX은 그냥 텍스트 이므로 그럴 확률이 적다. 또한 큰 문서 작업시에는 소스파일을 아에 나눠 둘수 있어서 매우 편리하다. 단지 컴파일 버튼만 누르면 모든 소스파일을 합쳐서 미려한 한문서로 만들어 준다. 물론 문서가 커질수록 컴파일 시간도 커질테지만, 한 문장 쓰고 컴파일 하지 않는 이상엔 큰 문제가 되지 않는다. 또한 소스파일을 나눠 뒀을시에는 수정된 소스파일만 다시 컴파일 하고 나머지는 이미 컴파일 된 파일 (.aux)를 쓰므로 그 시간 조차 줄어들게 된다.
결정적으로 바이너리가 아닌 텍스트 파일로 문서를 작성하기 때문에 Git같은 버전 관리 시스템으로 형상관리를 할 수 있는 장점이 있다. Microsoft Word나 한컴오피스 한글에서도 버전관리가 가능하기는 하지만 Git에 비할바는 아니다.
3. 타입세팅(Typesetting) 시스템
LaTeX은 기본적으로 작가들이 외형적인 요소(예를 들어 페이지 수 폰트, 위치 등등 지정하기)를 배제하고 내용물(텍스트)에 집중할 수 있도록 하기 위해 작성되었다. LaTeX 문서를 작성할 때, 챕터, 섹션, 테이블, 이미지 등의 항목들을 의미하는 명령어들을 일단 배치하고 그 밑에 내용을 채우는 방식으로 작성하는데, 일단 이렇게 작성해 두면 LaTeX 문서는 텍스트 파일에 지나지 않는다[4] . 이를 LaTeX 타입세팅 시스템으로 읽어들이면 내가 원하는 형식의 문서 파일로 만들어준다. 현재는 학회에서 PDF형식을 많이 사용하며, PS(PostScript)방식의 문서도 사용된다. 그 외에도 그림 파일로 만들거나 CSS를 이용한 HTML문서 또한 작성할 수 있다.
또한, 여러 가지 매크로 기능이 있어서, 복잡한 표, 그림 배치 등의 작업을 조금 더 수월하게 할 수 있도록 도와준다. 이 매크로 기능 중에 가장 꽃이 되는 것은 수식 편집 기능으로, 숙련되면 타 WYSIWYG 방식의 프로그램들 보다 훨씬 빠르게 작업할 수 있다. 한글과컴퓨터사의 한글 시리즈에 있는 수식을 다뤄 본 사람이라면 LaTeX의 수식 명령 체계가 매우 유사함을 알 수 있다. 이는 한컴사의 수식 명령체계가 LaTeX의 수식 명령 체계에서 유래했기 때문이다. [5]
4. 예시
다음과 같은 텍스트를 타입세팅 과정을 통하면...
\documentclass[12pt]{article}\usepackage{amsmath}\title{\LaTeX}\date{}\begin{document} \maketitle \LaTeX{} is a document preparation system for the \TeX{} typesetting program. It offers programmable desktop publishing features and extensive facilities for automating most aspects of typesetting and desktop publishing, including numbering and cross-referencing, tables and figures, page layout, bibliographies, and much more. \LaTeX{} was originally written in 1984 by Leslie Lamport and has become the dominant method for using \TeX; few people write in plain \TeX{} anymore. The current version is \LaTeXe. % This is a comment; it will not be shown in the final output. % The following shows a little of the typesetting power of LaTeX: \begin{align} E &= mc^2 \\ m &= \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}} \end{align}\end{document}
[image]
다음의 코드에도 사용이 가능하다.
\documentclass{article}\usepackage{amsmath}\title{\LaTeX}\date{}\begin{document} \maketitle \LaTeX{} is a document preparation system for the \TeX{} typesetting program. It offers programmable desktop publishing features and extensive facilities for automating most aspects of typesetting and desktop publishing, including numbering and cross-referencing, tables and figures, page layout, bibliographies, and much more. \LaTeX{} was originally written in 1984 by Leslie Lamport and has become the dominant method for using \TeX; few people write in plain \TeX{} anymore. The current version is \LaTeXe.\begin{equation*} E = mc^2 \\\end{equation*}\begin{equation*} m = \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}\end{equation*}\end{document}
5. BibTeX
LaTeX의 자매품 격인 소프트웨어로, 주로 레퍼런스를 학회나 출판물 형식에 알맞게 출력해주는 역할을 담당한다. Microsoft Word 같은 WYSIWYG 프로그램을 사용하다 보면 레퍼런스를 언급할 때 일일히 해당 학회 형식에 맞도록 다 작성해야 하는 경우가 존재하는데, BibTeX을 사용하면 한 번에 내가 원하는 스타일로 만들어 주는 기능이 있으며, 본문 내용에서 언급되었다면 자동으로 언급된 위치와 해당 참고 문헌 항목을 링크시켜 준다. 사실 MS Word 도 EndNote 등의 상용 프로그램과 함께 사용하면 비슷하게 사용할 수 있으나, BibTeX만큼 서식을 많이 가지고 있지는 않고, 각종 학회도 자신들만의 서식을 주로 BibTeX 형식으로 배포한다.
LaTeX과 떼려야 뗄 수 없는 관계라, 일단 작동하려면 LaTeX 타입세팅 프로그램이 만들어낸 .aux 파일이 필요하다. 서식 파일인 .bst 파일은 학회나 출판사마다 특유의 포맷으로 제공된다. 마지막으로 참고 문헌 목록은 .bib 파일에 저장되며, 앞의 두 파일들을 확보하고 BibTeX을 돌려 주면 .bbl 파일이 생성되며 LaTeX과 비로소 연결되어 문서에 참고 문헌 목록이 들어가게 된다. 참고 문헌은 일반적인 논문, 책은 물론, 컨퍼런스, 매뉴얼 타입의 문서, 학위 논문, 웹 페이지 등 다양한 종류를 지정해줄 수 있다. 예를 들어 책 형식의 참고 문헌을 지정하려면 다음과 같은 명령어를 .bib 파일에 추가하면 된다. 인용은 thebibliograpgy 환경을 사용할 때와 마찬가지로 해당 문서의 약어(아래 코드에서는 첫줄의 부분에 해당)를 cite하면 된다.
현존하는 거의 모든 학회 사이트가 .bib 파일 형식으로 참고 문헌을 제공하고 있으며, 구글 스칼라에서도 BiBTeX 코드를 얻어올 수 있다.
BiBTeX 코드를 편리하게 관리하기 위한 소프트웨어로는 JabRef 등이 있다.
5.1. 관련 문서
6. 설치법
6.1. 윈도우즈
한국 사용자라면 위에 명기된 KTUG 사이트에서 설치 파일을 받으면 LaTeX 타입세팅 프로그램은 물론, .tex 편집 프로그램[6] 까지 설치해 준다. 본디 TeX은 2바이트 문자를 타입세팅할 수 없는지라 한글 관련 애드온을 따로 설치해야 하는데, 이 패키지에는 모든 게 들어 있다.
인스톨러를 다운 받고 싶다면 여기로 가 보자.
윈도우즈에서는 TeXnicCenter라는 편집 프로그램이 가장 인기가 많다. 유니코드가 안된다는 커다란 단점이 있었는데, 버전 2부터는 지원한다고 한다. Visual Studio Code에 LaTeX Workshop익스텐션을 설치해 사용하는 것도 좋은 방법이다. 유니코드 지원은 물론이고 Visual Studio 특유의 강력한 자동완성 기능을 활용할수 있다. 그외에도 TeXstudio도 있고, 윈도우용 텍스트 편집 프로그램은 많으니 취향껏 골라쓰면 된다.
texlive를 설치할 때 기본 제공되는 texworks editor도 있으나, auto completion이 안되는 등 단점을 가지고 있다.[7]
6.2. macOS
MacTeX이라는 패키지가 나와 있어서 설치가 간단하다. 용량은 크지만 타입세팅 패키지 및 TeXShop, TeXWorks 등의 LaTeX 편집기 등이 올인원으로 들어 있어 그냥 이거만 깔면 된다. 예전에는 한글 입력을 위해 ko.TeX을 받아 설치하는 등 번거로운 작업이 있었으나 지금은 모두 포함되어 있으므로 고민할 필요가 없다.
용량이 부족하거나 잡다한 것이 많이 깔리는 걸 싫어하는 유저는 MacTeX의 간소판인 BasicTeX 설치를 권장한다. 사용하면서 패키지가 없어서 발생하는 오류가 날 때 TeX Live Utility를 통해 해당 패키지만 설치해 주면 무난히 사용 가능하다. 별도의 편집기는 포함되어 있지 않아 직접 설치해야하며, 풀버전에도 들어있는 TeXShop이 macOS스러운 디자인으로 무난한 편.
유료지만 Texpad라는 프로그램도 사용 가능한데, 글을 입력함과 동시에 실시간으로 PDF 프리뷰가 가능하며(Live Typesetting), 명령어 자동 완성 등 괜찮은 기능이 몇 가지 있다. Mac App Store 버전과 홈페이지에서 판매하는 버전 두 가지가 존재하는데, 홈페이지에서 구매하는 것이 더 저렴하다. macOS 버전 외에도 iOS 버전도 판매되고 있으며 두 버전 간의 연동도 가능하다.
6.3. 리눅스
배포판마다 설치법이 다양한데, 가장 많이 사용되는 우분투리눅스의 경우 매우 간단하다. 역시 타입세팅 패키지를 받기 위해서는 콘솔을 열고
sudo apt-get install texlive-full
수동으로 설치하고 싶다면 여기에서 Unix용 TeXLive 인스톨러를 다운받은 후 압축을 풀고, 인스톨러 스크립트를 실행해 주면 정신 없이 (대략 1기가가 넘는다) 패키지를 다운받으며 설치를 끝낸다.타입세팅 환경으로는 Emacs나 vim을 사용해도 되고, TeXWorks나 Kile 등이 제법 유용하다. 전문적으로는 사실 Emacs의 Auctex 모드가 가장 유명하다.
7. 웹에서 사용하기
굳이 컴퓨터에 설치하지 않고도 LaTeX 사용에는 지장이 없다. 웹에서 LaTeX 편집 및 컴파일을 지원하는 사이트가 있으므로 설치하기 번거롭다면 Overleaf를 사용할 수 있다. 표준적인 패키지는 모두 갖추고 있고, 다른 사람과 공유하거나 협업하는 기능도 들어 있으므로, 아주 높은 보안성을 요구하는 문서가 아니라면 오히려 사용하기 편할 수 있다. 물론 사용 인구가 적은 패키지가 필요하다든가, 혹은 자신의 컴퓨터에서 쓰는 에디터의 세팅 등은 유지가 되지 않으므로 사람에 따라 다를 수 있지만, 반면 LaTeX이 설치되어 있지 않은 기기, 특히 타블렛이나 휴대폰 등에서 작업하기는 오히려 편하다.
8. 팁
Detexiify에서는 수학기호나 여러가지 기호를 그리면 그것에 대한 코드를 나타내어 준다. 처음 LaTeX을 접하는 사람들에게는 좋은 사이트가 될 것이다. 참고로 TeXstudio를 비롯한 몇몇 편집기는 왼쪽에 기호 목록이 있다.
단순히 기호 외에도, 여기에서는 손으로 쓴 수식을 통째로 인식하여 코드를 나타나어 준다.
LaTeX에 관한 어지간한 질문들은 구글에 영어로 검색하면 대부분의 답변을 여기에서 얻어갈 수 있다. 가령, 표에 대각선을 넣는 방법이 궁금하다면 구글에 'latex table diagonal line'과 같이 검색하면 된다.
texlive2013 기준으로, tex에서 사용되는 기본 한글 글꼴은 나눔명조이다. 하지만 바탕이나 굴림 등을 사용하고 싶을 경우, 간단히 설정한 뒤 pdflatex이 아닌 xelatex으로 컴파일하면 된다. 간단한 용례는 여기를 참조바람. 영어 글꼴으로 Times New Roman을 사용하고 싶다면 xelatex을 사용하지 않고도 간단히 패키지 몇개를 추가하면 되니 찾아보도록 하자.
정 불편하면 네이버에 들어가 수식편집기를 이용해 작성한 후 밑의 코드를 복사한 후 붙여넣기 하자.
9. 여담
9.1. 효율성에 관한 논의
과연 LaTeX이 MS Word 에 비해서 문서 작업 효율이 높은지, 실험을 통해 탐구한 연구가 있다. An Efficiency Comparison of Document Preparation Systems Used in Academic Research and Development 이 논문에 의하면, 수식 입력하는 것을 제외하면 LaTeX 전문가[8] 의 문서 작업 속도가 MS Word 초보자[9] 에 비해서도 느리다고 한다. 또한, 초록에서도 볼 수 있듯이 LaTeX 사용자들은 LaTeX을 사용하는 것 자체를 즐긴다는 결론을 내렸다.
사실 문서의 모양을 중시하다 보면 LaTeX으로 WYSIWYG을 해야 하는 경우가 꽤 많기 때문에 마음대로 안 되어서 오히려 효율이 떨어지는 경우가 많다. 특히, '그림'이나 '표'의 위치를 수동으로 지정하기가 어렵다는 문제가 있다. 가장 효율적인 문서가 가장 보기 좋은 문서는 아니기 때문. LaTeX의 문법은 상당히 논리정연하지만, 그만큼 인체공학을 고려하지 않은 면도 큰 편이라 장시간 작업을 할 경우 상당히 손이 피곤해진다.
하지만 이는 숙련도의 문제이다. 워드같은 소프트웨어는 초심자가 시작해서 뭐라도 하기엔 매우 쉽고 수월 하지만, 문서가 길어지고 복잡해 질수록 여러가지고 꼬이기 시작하고, 이것저것 시도 하기가 어려워 진다. 하지만 LaTeX 에서는 해당 부분을 주석화 하고 이것저것 시도하기가 매우 수월 하다. 수동 강제지정이 어렵다는 말도 숙련도 관련 문제이다. 대학원에서 몇년만 써도, 워드 못지않게 자유자재로 원하는 위치에 원하는 그림등이 들어간다. 물론 워드를 생각해서 정말 아무데나 놓으려면 좀 시간이 걸리지만, 논문등을 쓰는데에는 표나 그림등이 들어가는 위치는 정해져 있기 때문에 (항상 페이지의 맨 위) 그런면에서는 워드에 꿀릴 이유가 전혀 없다.
물론 MS 워드의 수식 편집기능은 정말 나쁘기 때문에 워드를 사용하면서도 수식 편집 기능이 절실히 필요한 경우 MathType 같은 유료 애드온을 깔아 쓰는 경우가 많다. 물론 이 Mathtype도 LaTeX 수식문법을 지원한다! LaTeX은 수식문법 한정으로 사실상 표준으로 자리잡은 상황.
9.2. 기타
- LyX(릭스 또는 뤽스)[10] 라는 오픈소스 LaTeX 편집 프로그램도 있다. 첫 개발자[11] 는 KDE를 만든 독일 개발자 마티아스 에트리히(Matthias Ettrich)이다. 이 프로그램은 LaTeX 문서를 편집함에도 무려 WYSIWYG 방식...을 변형한 WYSIWYM(What You See Is What You Mean) 방식을 쓴다. 일일이 코딩을 안 하면 직성이 안 풀리는 사람들 입장에서는 탐탁지가 않을 수도 있겠으나 반면 LyX를 씀으로써 LaTeX 편집이 편해졌다는 긍정 평가도 있는 듯. 참고로 이 프로그램은 처음 발표된 당시가 1995년인 꽤 오래 된 프로그램이다. 본래의 이름은 lyrics(가사·歌詞)와 발음이 같은 Lyrix였고 파일 확장자만 .lyx였으나, Santa Cruz Operation이라는 현재는 사라진 회사가 개발한 워드프로세서와 명칭이 충돌한다는 것을 뒤늦게 알게 되었다. 그래서 확장자를 그대로 따서 이 프로그램의 이름을 LyX로 개명했다고 한다.
10. 관련 문서
- TeX
- 마크다운 - 매우 간략화된 마크업 언어의 일종. 작성 후 컴파일 하면 웹 페이지(HTML) 문서가 만들어 진다. 직접 복잡한 HTML 문서를 만들기 귀찮아 하는 개발자들에 의해 널리 사용된다.
[1] 흔히 TAOCP로 불리는 The Art of Computer Programming의 저자이다.[2] 따지고 보면 아래아 한글의 수식 입력 시스템도 LaTeX에서 따왔으니 당연한 일.[3] 이공계뿐 아니라 사회과학 계열에서도 LaTeX을 많이 사용한다. 특히 정치학, 경제학, 사회학, 경영학 등의 분야에서 합리적 선택이론(rational choice theory)이 기본이 되는 formal/game theory를 방법론으로 삼을 경우 수식 때문에 LaTeX을 많이 쓰게 된다.[4] 보통 .tex 확장자를 많이 이용한다.[5] 한컴에서 수식입력기를 만든 사람도 TeX을 참조하였다고 인터뷰를 한 기사도 있었던 듯하다. 그러나, TeX의 전문가들에게 물어보면 한컴의 수식입력기의 입력체계는 TeX을 참조하였지만, 좀더 많은 부분을 영향받은 다른 것이 있다고도 한다.[6] 사실 노트패드에서 해도 되지만 귀찮다?[7] 일부 명령어는 명령어 앞부분을 입력한 후 tab 키를 눌러서 완성시킬 수 있지만 기능이 많이 약하다.[8] 1000시간 이상 사용자[9] 500시간 이하 사용자[10] (La)TeX과는 달리 LyX의 X를 원래 영어식 발음대로 읽는다. LyX의 발음은 [\ˈlɪks\](릭스; 영어식)나 [\ˈlʏks\](뤽스; 독일어식)라고 읽는다고 한다.[11] 현재는 LyX를 개발 팀이 협업으로 만들고 있다.