\TeX나 \LaTeX 같은 명령은 단순한 문자열이 아니라, 글자를 올리고 내리며 자간을 조정해 로고(조판된 워드마크) 를 만듭니다. 먼저 세 가지를 기억하면 됩니다. 표준 LaTeX가 제공하는 로고는 \TeX, \LaTeX, \LaTeXe 세 개뿐이며, XeTeX나 LuaTeX 같은 엔진 이름 로고는 패키지가 필요합니다. 여러 엔진 로고를 일관된 모양으로 맞추려면 hologo 가 편리합니다. 또 이들은 수식이 아니라 텍스트 모드 명령이고, 바로 뒤의 공백을 먹어 버리는 함정이 있습니다.
로고가 조판되는 방식
TeX 로고는 그냥 “TeX”라고 입력한 것과 다릅니다. \TeX라고 쓰면 가운데 E가 조금 내려가고(기준선 아래로 내려가며) 앞뒤 글자 사이도 촘촘히 조정되어 특유의 모양이 됩니다. 이는 Knuth가 TeX 자체의 조판 기능으로 설계한 워드마크에 가깝기 때문에, 본문에서 TeX를 언급할 때는 “TeX”라는 생글자보다 이 명령을 쓰는 것이 관례입니다.
\LaTeX 로고도 같은 발상입니다. \TeX 앞에 작게 올린 A(위첨자처럼 올린 글자)를 놓아 “La”를 만들고, 그 뒤에 TeX 로고를 잇습니다. 그래서 올라간 작은 A와 내려간 E 가 LaTeX 워드마크의 모양을 결정합니다. \LaTeXe는 이 LaTeX 로고 뒤에 내려간 그리스 문자 ε(엡실론) 을 붙인 것으로, 현재 LaTeX를 가리키는 “LaTeX2ε” 표지가 됩니다. 여기서 2와 ε는 “버전 2e”를 뜻합니다.
구현상으로는 상자를 올리거나 내리는 \raisebox와 글자 사이를 좁히는 커닝 을 조합해 만듭니다. 그래서 실제로 출력되는 로고의 정확한 형태는 사용하는 글꼴에 따라 달라지고, 글꼴을 바꾸면 글자가 맞물리는 정도가 어긋날 수 있습니다. 뒤에서 다루는 metalogo 패키지는 바로 이런 간격을 조정할 수 있게 해 줍니다.
LaTeX에 기본 포함된 것은 세 개뿐
첫 번째로 주의할 지점입니다. 순수 LaTeX가 정의하는 로고 명령은 \TeX, \LaTeX, \LaTeXe 세 개뿐이며, 이들은 패키지 없이 사용할 수 있습니다. \XeTeX, \LuaTeX, \pdfTeX, \BibTeX 같은 엔진 이름이나 도구 이름 로고는 표준에 들어 있지 않습니다. 그대로 쓰면 “undefined control sequence” 오류가 나므로, 다음 절의 패키지 중 하나를 불러와야 합니다.
% 標準 LaTeX だけで使える三つ(プリアンブル不要)
\TeX% TeX ロゴ(E が下がる)
\LaTeX% LaTeX ロゴ(小さい A が上がり E が下がる)
\LaTeXe% LaTeX2e ロゴ(末尾に下がった ε)또한 amsmath/amstex를 불러오면 AMS 로고 \AmS(특수한 글자 모양으로 조판되는 “AMS” 워드마크)를 사용할 수 있고, \AmS-\LaTeX라고 쓰면 “AMS-LaTeX” 로고가 됩니다. MetaFont와 MetaPost 로고에는 mflogo 패키지의 \MF, \MP가 표준적인 선택입니다.
엔진 로고 — metalogo와 hologo
XeTeX, LuaTeX 같은 로고를 얻는 방법은 크게 두 가지입니다. 하나는 metalogo 패키지입니다. \usepackage{metalogo}를 쓰면 \XeTeX, \XeLaTeX, \LuaTeX, \LuaLaTeX를 사용할 수 있습니다. XeTeX 로고의 특징인 좌우 반전된 E(Ǝ 같은 모양)도 이 방식으로 조판됩니다. metalogo의 장점은 간격을 세밀하게 조정할 수 있다는 점입니다. \setlogokern{Te}{...} 같은 명령으로 글자 쌍별 커닝이나 \LaTeX에서 올라간 A의 높이 등을 글꼴에 맞게 미세 조정할 수 있습니다. 여러 글꼴을 다루는 XeLaTeX 사용자를 염두에 둔 설계입니다.
다른 하나는 hologo 패키지이며, 이 페이지에서 추천하는 방식입니다. Heiko Oberdiek가 2010년에 공개했고, 현재는 Oberdiek Package Support Group이 유지보수합니다. \usepackage{hologo}를 불러온 뒤 \hologo{XeTeX}처럼 로고 이름을 인수로 넘기는 하나의 명령으로 많은 엔진과 도구 로고를 일관된 규칙 으로 조판할 수 있습니다. 문장 첫머리 등에서 첫 글자를 대문자로 만들고 싶다면 \Hologo{...}를 사용합니다. \hologo{pdfTeX}, \hologo{LuaTeX}, \hologo{BibTeX}, \hologo{ConTeXt}, \hologo{KOMAScript}처럼 각 로고마다 별도 명령을 외우지 않고 이름으로 불러올 수 있다는 점이 장점입니다.
\usepackage{hologo}
% ...
% 名前を渡すだけで多数のロゴが一貫して組める
\hologo{pdfTeX}, \hologo{XeTeX}, \hologo{LuaTeX} は
\hologo{TeX} の後継エンジンです。\hologo{BibTeX} で文献を、
\hologo{ConTeXt} は別系統のフォーマット。
% 文頭などで先頭を大文字に
\Hologo{pdfLaTeX} を使います。hologo가 다루는 로고는 매우 많으며, 일본어 환경에서 익숙한 \hologo{pLaTeX}, \hologo{upLaTeX}, \hologo{pTeX}, \hologo{upTeX}도 포함됩니다. 본문에서 여러 엔진 이름을 언급하는 해설 글이나 매뉴얼에는 표기를 통일할 수 있는 hologo가 특히 잘 맞습니다. 반대로 본문에 나오는 로고가 \LaTeX 정도뿐이라면 기본 명령만으로 충분하고 패키지는 필요하지 않습니다.
로고 명령 빠른 참조
주요 로고 명령을 출력되는 로고 이름과 필요한 패키지와 함께 정리합니다. “명령”은 실제로 입력하는 소스이고, “로고”는 조판되는 문자열이며, 오른쪽은 필요한 패키지입니다. hologo 항목은 \hologo{XeTeX}처럼 이름을 넘기는 형태로도 쓸 수 있습니다.
| 명령 | 출력 / 패키지 | |
|---|---|---|
\TeX | TeX(E가 내려감) | 기본 LaTeX(없음) |
\LaTeX | LaTeX(작은 A가 올라감) | 기본 LaTeX(없음) |
\LaTeXe | LaTeX2ε(끝의 ε가 내려감) | 기본 LaTeX(없음) |
\AmS | AMS(특수한 형태) | amsmath / amstex |
\XeTeX | XeTeX(반전된 E) | metalogo |
\XeLaTeX | XeLaTeX | metalogo |
\LuaTeX | LuaTeX | metalogo |
\LuaLaTeX | LuaLaTeX | metalogo |
\hologo{pdfTeX} | pdfTeX | hologo |
\hologo{XeTeX} | XeTeX(반전된 E) | hologo |
\hologo{LuaTeX} | LuaTeX | hologo |
\hologo{BibTeX} | BibTeX | hologo |
\hologo{ConTeXt} | ConTeXt | hologo |
\hologo{KOMAScript} | KOMA-Script | hologo |
\hologo{pLaTeX} | pLaTeX | hologo |
\hologo{upLaTeX} | upLaTeX | hologo |
\MF | METAFONT | mflogo |
\MP | METAPOST | mflogo |
일부 로고는 metalogo와 hologo 양쪽에서 모두 만들 수 있습니다. 예를 들어 \XeTeX와 \hologo{XeTeX}가 그렇습니다. 둘을 동시에 불러오면 \XeTeX 같은 정의가 충돌할 수 있으므로, 둘 중 하나로 통일 하는 것이 안전합니다. 여러 엔진 로고를 쓴다면 hologo, \LaTeX 계열 로고의 모양을 글꼴에 맞게 세밀하게 조정하고 싶다면 metalogo를 쓰면 됩니다.
실전 주의사항 — 공백과 모드
가장 큰 함정은 이 매크로들이 바로 뒤의 공백을 먹는다는 것 입니다. \TeX나 \LaTeX처럼 영문자로 된 명령은 명령 이름의 끝을 표시하는 구분자로 뒤따르는 공백을 흡수합니다. 그래서 \LaTeX is great라고 쓰면 출력은 “LaTeXis great”처럼 로고와 다음 단어가 붙어 버립니다. 이를 막으려면 명령 뒤에 빈 중괄호 {} 를 두거나, 백슬래시+공백 \ (제어 공백) 을 넣습니다.
% 悪い例:空白が食われて「LaTeXis」になる
\LaTeX is great.
% 良い例:空の波括弧で区切る
\LaTeX{} is great.
% 良い例:バックスラッシュ+空白(制御綴の空白)
\LaTeX\ is great.
% 直後が句読点ならそのままでよい
\LaTeX, \TeX.바로 뒤에 쉼표나 마침표 같은 기호가 오면 먹힐 공백이 없으므로 그대로 써도 됩니다. xspace 패키지로 뒤따르는 공백을 자동 보충하는 방식도 있지만, 오동작할 여지가 있고 작성자도 더 이상 권장하지 않습니다. 따라서 우선 {}나 \ 로 명시하는 편이 확실합니다.
두 번째 주의점은 이들이 텍스트 모드 명령 이라는 것입니다. \TeX와 \LaTeX는 본문에 그대로 쓰는 명령이지, 수식 모드($...$) 안에서 쓰는 것이 아닙니다. 수식 안에 넣고 싶다면 \text{\LaTeX}처럼 먼저 텍스트로 돌아와서 써야 합니다. 한때 제목이나 각주 같은 이동 인수 안에서 로고 명령을 쓰면 오류가 날 수 있었지만, 현대 LaTeX에서는 이 명령들이 robust 처리되어 있어 보통은 신경 쓰지 않아도 됩니다.