글꼴 시스템(NFSS / 인코딩)

LaTeX 경고에 나오는 OT1/cmr/m/n/10이라는 문자열은 암호가 아니라 주소입니다. LaTeX는 글꼴을 직접 지목하지 않고 인코딩・패밀리・시리즈・셰이프・크기라는 다섯 좌표로 가리킵니다. 이 방식을 NFSS라고 합니다. 이 페이지에서는 그 다섯 좌표를 원본 소스와 로그까지 따라갑니다. \bfseries가 왜 굵기로 b가 아니라 bx를 요구하는지, \fontseries{c} 뒤에 굵게 하면 정말 bc가 되는지, 그리고 Font shape ... undefined라는 대체 경고가 무엇을 알려 주는지 살펴봅니다.

NFSS: 글꼴은 다섯 좌표로 결정된다

LaTeX2e의 글꼴 선택은 NFSS(New Font Selection Scheme, 새 글꼴 선택 방식) 위에서 돌아가며, 그 핵심 주장은 하나입니다. 어떤 텍스트 글꼴도 다섯 속성으로 완전히 결정된다는 것, 곧 인코딩・패밀리・시리즈・셰이프・크기입니다. NFSS를 설계한 사람은 Frank Mittelbach와 Rainer Schöpf이며, 커널 소스 ltfssbas.dtx의 저작권 표시는 1989년까지 거슬러 올라갑니다. 그 이전의 LaTeX 2.09에서는 \bf\it를 동시에 적용하는 것조차 불가능했습니다. 굵기와 글자 모양을 서로 독립된 축으로 나눈다는 발상이 아직 없었기 때문입니다.

  • 인코딩 — 글꼴 안에서 글리프가 놓이는 순서(입력 문자가 어느 슬롯에 대응하는지). 본문에서는 OT1(TeX text)과 T1(TeX extended text, 이른바 Cork)이 대표적입니다. 뒤에서 자세히 다룹니다.
  • 패밀리 — 글자의 골격을 공유하는 글꼴 모음. Computer Modern Roman은 cmr, 그 산세리프는 cmss, 타자체는 cmtt입니다. 상용 글꼴에서는 Times가 ptm, Helvetica가 phv, Courier가 pcr입니다.
  • 시리즈 — 굵기와 폭을 하나로 합친 축입니다. m(보통), b(bold), bx(bold extended), c(condensed), bc(bold condensed), sb(semibold) 등이 있습니다.
  • 셰이프 — 글자의 모양입니다. n(직립), it(이탤릭), sl(기울임), sc(작은 대문자). 드물게 ui(기울지 않은 이탤릭)도 있습니다.
  • 크기 — 디자인 크기입니다. 10pt 같은 치수이며, 단위를 생략하면 pt로 간주합니다.

사람들이 걸려 넘어지는 유일한 지점은 시리즈가 굵기와 폭을 하나의 값으로 합친다는 사실입니다. 표준 표기에서 굵기는 ul부터 ub(ultra light에서 ultra bold), 폭은 uc부터 ux(ultra condensed에서 ultra expanded)까지이며, 둘을 이어 붙여 하나의 값으로 만들되 m은 생략합니다. 다만 굵기와 폭이 모두 medium일 때는 m 한 글자가 남습니다. 그래서 “굵고 보통 폭”은 b, “bold extended”는 bx, “보통 굵기에 좁은 폭”은 c, “굵고 좁은 폭”은 bc가 됩니다. 이 다섯 값을 encoding/family/series/shape/size로 늘어놓은 것이 LaTeX 내부에서의 글꼴 공식 이름이며, 지금 무엇이 선택되어 있는지는 \showthe\font로 확인할 수 있습니다.

log
% \showthe\font in a default article, and what the log answers:
> \OT1/cmr/m/n/10 .

% the same five values head every overfull-box report:
Overfull \hbox (121.83368pt too wide) detected at line 3
\OT1/cmr/m/n/10 Supercalifragilisticexpialidocious

% and the first four of them name a shape that had to be substituted:
LaTeX Font Warning: Font shape `T1/cmss/bx/sc' undefined
(Font)              using `T1/cmss/bx/n' instead on input line 4.

\bfseries는 왜 b가 아니라 bx를 요구하는가

답은 \bfseries\bfdefault를 읽지 않는다는 것입니다. 커널의 \bfdefault는 정말로 b이지만, \bfseries는 먼저 현재 패밀리가 \rmdefault, \sfdefault, \ttdefault 중 하나와 같은지 확인하고, 같으면 전용 기본값\bfseries@rm / \bfseries@sf / \bfseries@tt를 대신 씁니다. 그리고 latex.ltx는 이 셋을 모두 bx로 초기화합니다. \bfdefault가 쓰이는 것은 현재 패밀리가 그 셋 중 어느 것도 아닐 때뿐입니다. 즉 본문 글꼴에서 \bfseries를 치는 한 \bfdefault는 그냥 지나쳐집니다.

latex.ltx
% TeX Live 2024, latex.ltx (the LaTeX2e kernel), abridged
\def\bfseries@rm{bx}
\def\bfseries@sf{bx}
\def\bfseries@tt{bx}

\DeclareRobustCommand\bfseries{%
  \not@math@alphabet\bfseries\mathbf
  \expand@font@defaults
  \maybe@update@bfseries@defaults
  \ifx\f@family\rmdef@ult      \fontseries\bfseries@rm
  \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
  \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
  \else                        \fontseries\bfdefault
  \fi\fi\fi
  \UseHook{bfseries}%
  \selectfont
}

그렇다면 기본값이 왜 bx일까요? Knuth가 실제로 몇 벌을 새겼는지에 답이 있습니다. TeX Live 2024의 Computer Modern 메트릭을 세어 보면 순수한 굵은 글꼴은 cmb10.tfm 단 하나뿐입니다. 반면 bold extended는 cmbx5, cmbx6, cmbx7, cmbx8, cmbx9, cmbx10, cmbx12로 일곱 가지 디자인 크기가 있습니다. 각주와 아래 첨자까지 제대로 굵게 조판할 수 있는 것은 cmbx뿐이므로, NFSS는 Computer Modern에 대해 bx를 요구합니다.

여기까지는 Computer Modern에만 해당하는 사정이지만, 커널은 뒷정리를 제대로 합니다. \begin{document} 시점에 실행되는 \init@series@setup\rmdefaultcmr, cmss, cmtt, lcmss, lcmtt, lmr, lmss, lmtt 중 어느 것도 아니면 \bfseries@rmb로 낮춥니다. 다시 말해 bx는 Computer Modern과 Latin Modern만의 유산이며, Times나 TeX Gyre로 바꾸는 순간 \bfseries는 조용히 b를 요구하기 시작합니다. 실측 결과도 같았습니다. \renewcommand\rmdefault{ptm}을 넣으면 \bfseries@rm도, 실제로 선택된 시리즈도 b가 됩니다.

문서의 설정\bfseries가 요구하는 시리즈이유
article (default)bx\rmdefaultcmr이므로 \bfseries@rm의 초깃값이 그대로 남습니다
\usepackage{lmodern}bxlmr도 커널의 Computer Modern 목록에 들어 있습니다
\renewcommand\rmdefault{ptm}b\init@series@setup이 목록 밖으로 판정해 \bfseries@rm을 낮춥니다
\fontseries{b}\selectfontb저수준에서 직접 지정한 값은 기본값 매크로를 거치지 않습니다
\DeclareFontSeriesDefault[rm]{bf}{sb}sb한 메타 패밀리의 굵은 글꼴만 바꾸는 공식적인 방법

실무적인 결론은 분명합니다. 굵은 글꼴의 의미를 바꾸고 싶다면 \renewcommand{\bfdefault}{b}보다 \DeclareFontSeriesDefault[rm]{bf}{b} 를 쓰세요. 전자도 동작하지만(\bfdefault를 고쳐 쓰면 \maybe@update@bfseries@defaults가 세 전용 기본값을 덮어씁니다) 로마체만, 혹은 산세리프만 겨냥할 수는 없습니다. 그리고 “굵게 했는데 굵어지지 않는다”는 전형적인 증상을 만나면 가장 먼저 의심할 곳이 바로 이 대응 관계입니다. 글꼴에 bx가 없을 뿐일 수도 있습니다.

시리즈는 합성된다: c에 b를 더하면 bc

2020년 LaTeX2e 릴리스(latexrelease.sty\IncludeInRelease{2020/02/02})부터 시리즈 지정은 덮어쓰기가 아니라 합성이 되었습니다. 좁은 폭(c)으로 조판하던 중에 굵게를 요구하면 b로 바뀌는 것이 아니라 bc(bold condensed) 로 합쳐집니다. 이 합성표를 만드는 것이 \DeclareFontSeriesChangeRule이며, 커널에는 200줄이 넘는 규칙이 늘어서 있습니다. {c}{b}{bc}{}는 “현재 시리즈가 c인데 b를 요구받으면 bc로 가라, 대체값 없음”으로 읽습니다.

latex.ltx
% the rule table (latex.ltx, from ltfssaxes.dtx), a handful of the 200-odd entries
\def\DeclareFontSeriesChangeRule#1#2#3#4{%
  \@namedef{series@#1@#2}{{#3}{#4}}}
\DeclareFontSeriesChangeRule {c}{b}{bc}{}     % condensed + bold      -> bc
\DeclareFontSeriesChangeRule {b}{c}{bc}{b}    % bold + condensed      -> bc, else b
\DeclareFontSeriesChangeRule {bx}{c}{bc}{bx}  % bold extended + cond. -> bc, else bx
\DeclareFontSeriesChangeRule {m}{b}{b}{bx}    % medium + bold         -> b,  else bx

다만 규칙이 무조건 발동하지는 않습니다. \selectfont는 먼저 대체 없이 합성한 뒤, 그 결과인 encoding/family/series/shape실제로 존재하는지 확인하고, 없으면 원래 값으로 되돌린 다음 대체 모드로 다시 합성합니다. Computer Modern에는 좁은 폭 자체가 없으므로 \fontseries{c}\selectfont는 경고를 내고 m으로 돌아가며, 이어서 굵게 해도 b까지밖에 가지 못합니다. “합성 같은 건 일어나지 않는다”고 결론 내리기 쉬운 이유가 바로 이것입니다. 좁은 폭을 실제로 갖춘 글꼴로 시험하면 규칙은 제대로 작동합니다. Helvetica(phv)는 T1m / c / b / bc를 모두 갖추고 있어서, 아래 예에서 실물을 확인할 수 있습니다.

document.tex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{helvet}          % sets \sfdefault to phv
\begin{document}\makeatletter
\sffamily                    % -> phv/m   (Helvetica)
\fontseries{c}\selectfont    % -> phv/c   font file phvr8tn (Helvetica Narrow)
\bfseries                    % -> phv/bc  font file phvb8tn (Helvetica Bold Narrow)
\typeout{[series] \f@series\space -> \fontname\font}
\makeatother\end{document}

% [series] bc -> phvb8tn
%
% The same document with Computer Modern instead reports:
%   LaTeX Font Warning: Font shape `OT1/cmr/c/n' undefined
%   [series] m  (the condensed request was substituted away before bold arrived)

저수준 선택자와 \selectfont

저수준 선택자는 속성을 하나씩 지정합니다. \fontencoding{T1}, \fontfamily{ptm}, \fontseries{b}, \fontshape{it}, \fontsize{12}{14}입니다. 규칙은 딱 하나, 설정만 해서는 아무 일도 일어나지 않고 \selectfont를 불러야 반영된다는 것이며, 앞 절에서 그 이유도 드러났습니다. \fontseries는 값을 그 자리에서 기록하지 않고 \delayed@f@adjustment라는 보류 목록에 쌓아 둘 뿐이며, 실제 합성과 존재 확인, 대체는 \selectfont가 한꺼번에 처리합니다. 그래서 설정과 텍스트 사이에 \selectfont를 빠뜨리면 그 글자는 이전 글꼴로 조판됩니다.

document.tex
\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
% Correct: set the attributes, commit with \selectfont, then the text
{\fontfamily{ptm}\fontseries{b}\selectfont Bold Times}

% Wrong: the words before \selectfont are still in the old font
{\fontfamily{ptm} Some \fontseries{b}\selectfont text.}

% \usefont gives four attributes at once and commits on the spot
{\usefont{T1}{ptm}{b}{it} Bold italic Times}

% Change only the size; reuse the current baselineskip
\makeatletter
{\fontsize{14}{\f@baselineskip}\selectfont Fourteen point}
\makeatother
\end{document}

다섯 속성 중 넷을 한 번에 넘기는 지름길이 \usefont{encoding}{family}{series}{shape} 입니다. 크기는 현재 값을 이어받고, 변경은 그 자리에서 확정됩니다. 그룹 { }로 감싸면 효과가 그 범위에 한정됩니다. \fontsize의 두 번째 인수로 내부 매크로 \f@baselineskip을 넘기는 것은 행간을 건드리지 않고 글자 크기만 바꾸는 정석입니다(내부 매크로를 고쳐 쓰는 것은 금물이지만, 읽어서 넘기는 것은 괜찮습니다). 다만 — 이런 것을 직접 쓸 일은 드뭅니다. \textbf\fontseries를, \sffamily\fontfamily를 부를 뿐이며, 저수준으로 내려가는 것은 특정 글꼴을 이름으로 지정하거나 새 글꼴을 클래스나 패키지에 연결할 때뿐입니다.

기본값 매크로: \rmdefault와 그 동료들

\textrm이나 \rmfamily어떤 패밀리를 고르는지는 하드코딩되어 있지 않고 매크로에 담겨 있습니다. \rmdefault(로마체), \sfdefault(산세리프), \ttdefault(타자체) 세 가지이며, article 클래스의 기본값은 각각 cmr, cmss, cmtt입니다. 그래서 본문 글꼴을 바꾸려면 명령이 아니라 이 매크로를 고쳐 씁니다. 그리고 앞 절에서 보았듯 이 세 값은 굵은 글꼴이 무엇을 요구할지까지 좌우하므로, 단순한 별칭이 아니라 문서의 글꼴 방침으로 보는 편이 정확합니다.

preamble.tex
% Re-point the three meta-families for the whole document
\renewcommand{\rmdefault}{ptm}  % roman   -> Times
\renewcommand{\sfdefault}{phv}  % sans    -> Helvetica
\renewcommand{\ttdefault}{pcr}  % mono    -> Courier

% The body font itself is these four (defaults: OT1, \rmdefault, m, n)
%   \encodingdefault \familydefault \seriesdefault \shapedefault
% and \familydefault points at \rmdefault, so the line above changes the body.

% Retarget bold and medium per meta-family (LaTeX2e 2020-02-02 and later)
\DeclareFontSeriesDefault[rm]{bf}{b}
\DeclareFontSeriesDefault[sf]{md}{l}

.fd 파일과 \DeclareFontShape: 좌표가 실제 파일과 만나는 곳

다섯 좌표를 실제 글꼴 파일에 연결하는 것이 글꼴 정의 파일(.fd) 입니다. 이름은 인코딩을 소문자로 쓴 뒤 패밀리를 붙인 형태로, OT1cmr이면 ot1cmr.fd, T1phv이면 t1phv.fd이며, LaTeX는 필요해지는 시점에 이를 자동으로 읽어들입니다. 내 컴퓨터의 어디에 있는지는 kpsewhich ot1cmr.fd로 알 수 있습니다. 내용은 \DeclareFontFamily 한 줄과, 시리즈・셰이프 조합마다 하나씩인 \DeclareFontShape의 나열입니다.

ot1cmr.fd
% TeX Live 2024, tex/latex/base/ot1cmr.fd (excerpt)
\DeclareFontFamily{OT1}{cmr}{\hyphenchar\font45 }
\DeclareFontShape{OT1}{cmr}{m}{n}%
     {<5><6><7><8><9><10><12>gen*cmr%
      <10.95>cmr10%
      <14.4>cmr12%
      <17.28><20.74><24.88>cmr17}{}
%%%%%%% bold series
\DeclareFontShape{OT1}{cmr}{b}{n}
     {%
      <5><6><7><8><9><10><10.95><12>%
      <14.4><17.28><20.74><24.88>cmb10%
      }{}
%%%%%%%% bold extended series
\DeclareFontShape{OT1}{cmr}{bx}{n}
   {%
      <5><6><7><8><9>gen*cmbx%
      <10><10.95>cmbx10%
      <12><14.4><17.28><20.74><24.88>cmbx12%
      }{}

읽는 법은 꺾쇠 안의 크기 범위를 따라가면 됩니다. <5><6><7><8><9>gen*cmbx는 “5~9포인트에서는 어간에 크기를 이어 붙인 실제 글꼴(cmbx5, cmbx6 …)을 쓴다”, <12><14.4>...cmbx12는 “12포인트 이상은 cmbx12를 확대해 쓴다”는 뜻입니다. 위의 b 블록은 앞서 말한 “한 벌뿐” 상황을 그대로 보여 줍니다. 5포인트부터 24.88포인트까지 전부 cmb10을 늘여 쓰고 있습니다. 이 밖에 ssub(경고 없는 대체)와 sub(경고를 내는 대체)도 있는데, 예컨대 t1phv.fd에는 \DeclareFontShape{T1}{phv}{bx}{n}{<->ssub * phv/b/n}{} 라는 줄이 있습니다. Helvetica에는 bx가 없으니 조용히 b를 내주라는 선언입니다.

Font shape ... undefined — 글꼴 대체 경고 읽기

이 경고는 “그런 조합이 .fd에 없어서 가장 가까운 것을 임의로 썼다”는 보고입니다. 항상 두 줄로 나오며, 첫 줄에는 요구한 네 좌표, 둘째 줄에는 실제로 사용한 네 좌표와 입력 줄 번호가 들어갑니다. 오류가 아니므로 조판은 끝까지 진행되지만, 나온 PDF는 요구한 그것이 아닙니다. 위의 예에서는 좁은 폭이 없는 Computer Modern에 c를 요구했기 때문에 m이 쓰였고, T1/cmss에는 작은 대문자가 없어 직립인 n이 쓰였습니다.

log
% a missing shape inside a family that does exist
LaTeX Font Warning: Font shape `T1/cmss/bx/sc' undefined
(Font)              using `T1/cmss/bx/n' instead on input line 4.

% a family that does not exist at all: \DeclareFontSubstitution kicks in
LaTeX Font Warning: Font shape `T1/nosuchfont/m/n' undefined
(Font)              using `T1/cmr/m/n' instead on input line 4.

% and at the end of the run, the summary line that is easy to miss
LaTeX Font Warning: Some font shapes were not available, defaults substituted.

원인은 셋으로 좁혀집니다. (1) 그 글꼴에 그 자면이 없다 — Helvetica에는 이탤릭이 없어 sl이 대신 쓰이는 식입니다. 없는 것은 만들어 낼 수 없으니 다른 글꼴을 고르거나 대체를 받아들입니다. (2) 패밀리 이름의 철자가 틀렸다 — 둘째 줄에 cmr이 나오면 \DeclareFontSubstitution의 최후 수단이 작동한 신호이며, 대개 오타이거나 패키지를 읽어들이지 않은 경우입니다. (3) 인코딩을 잘못 짚었다OT1.fd만 있는 패밀리를 T1로 부른 경우 등입니다. 로그 끝에 한 줄로 나오는 Some font shapes were not available, defaults substituted. 는 훑어보다 놓치기 쉽지만, 이것이 나왔다면 본문 어딘가가 고르지 않은 서체로 조판되어 있다는 뜻입니다.

글꼴 인코딩: OT1 / T1 / TU의 차이

글꼴 인코딩입력된 문자를 글꼴의 어느 슬롯(글리프)에 대응시킬지에 대한 약속입니다. 다섯 속성 중 첫 번째이면서, \textbf 같은 저자용 명령이 없는 유일한 속성이기도 합니다. 전환은 패키지의 일, 곧 fontenc의 몫이기 때문입니다. OT1 은 Knuth의 원래 7비트 “TeX text”(기본값)입니다. 128자만 들어가므로 éñ기본 문자와 악센트의 합성(\accent)으로 만들어지고, 그 합성 때문에 악센트가 붙은 단어는 하이픈 처리되지 않으며 PDF에서 복사해도 깨집니다. T1(TeX extended text, 1990년 코크에서 열린 TUG 회의에서 유래해 Cork 인코딩이라고도 함)은 8비트 256글리프 인코딩으로 악센트 문자를 독립된 하나의 글리프로 가지므로, 이 두 문제가 동시에 사라집니다.

인코딩이 오직 슬롯 순서에 대한 약속일 뿐임을 OT1의 파운드 기호보다 잘 보여 주는 예는 없습니다. OT1에는 파운드 기호의 슬롯이 없으므로 ot1enc.def\textsterling이탤릭 글꼴의 달러 기호 슬롯을 불러옵니다(Computer Modern에서는 그 자리에 £가 들어 있습니다). 게다가 현재 글꼴이 기울어져 있지 않으면 먼저 \fontshape{ui}로 전환합니다. 그러지 않으면 £만 비스듬히 나오기 때문입니다. ot1cmr.fdui 선언에 “이 정의는 LaTeX의 \pounds에 쓰이므로 지우면 안 된다”는 경고 주석이 달려 있는 이유가 바로 이것입니다.

TU(TeX Unicode)는 시스템에 설치된 OpenType 글꼴을 Unicode 코드 포인트로 직접 부르기 위한 인코딩이며, XeLaTeX와 LuaLaTeX의 기본값입니다. 이는 예전의 EU1(XeTeX용)과 EU2(LuaTeX용)를 대체한 것으로, fontspec의 변경 이력에 따르면 TU의 도입은 v2.5(2016년 1월 30일), 기본값 승격은 v2.5c(2017년 1월 20일) 입니다. TeX Live 2024의 fontspec.sty에는 EU1, EU2라는 문자열이 단 한 군데도 남아 있지 않습니다. 이 밖에 T2A(키릴), LGR(그리스), TS1(Text Companion, 통화・저작권 등 본문용 기호)이 있고, 수식용으로는 OML(수식 이탤릭), OMS(수식 기호), OMX(대형 수식 기호)가 배정되어 있습니다. 또한 TS1의 기호 명령들은 2020년에 커널 본체로 옮겨 갔기 때문에, 지금의 textcomp 패키지는 기호를 하나도 정의하지 않습니다. 자세한 이야기는 기호 페이지에 맡깁니다.

인코딩내용비트 폭 / 비고
OT1Knuth의 원래 TeX text(기본값)7비트. 악센트는 합성 → 하이픈 불가
T1TeX extended text(Cork). 서유럽 언어8비트 256글리프. 악센트가 단일 글리프 → 하이픈 가능
TUTeX Unicode. OpenType 글꼴을 직접 지정Xe/LuaLaTeX의 기본값. EU1 / EU2를 대체
T2A키릴 문자8비트(T2B / T2C도 같은 계열)
LGR그리스 문자현재 그리스어에서 표준인 256글리프 인코딩
TS1Text Companion(본문용 기호)통화, 저작권 등. 명령들은 2020년에 커널로 이동
OML / OMS / OMX수식 이탤릭 / 수식 기호 / 대형 수식 기호수식 전용. 본문에는 쓰지 않습니다

inputenc와 fontenc의 차이: 입구와 출구

헷갈리기 쉬운 두 가지를 구분해 둡니다. 입력 인코딩.tex 소스의 바이트열을 어떤 문자로 읽을지(UTF-8 등)에 대한 약속이며, 역사적으로는 inputenc 패키지의 몫이었습니다. 글꼴 인코딩은 그렇게 읽은 문자를 출력 글꼴의 어느 글리프에 흘려 넣을지에 대한 약속이며 fontenc의 몫입니다. 입구(inputenc)와 출구(fontenc) 로 기억하면 헷갈리지 않습니다. 현대 pdfLaTeX에서는 소스를 UTF-8로 읽는 것이 기본이 되어 inputenc를 명시적으로 읽어들일 일이 거의 없어졌습니다. 반면 글꼴 인코딩은 여전히 지정할 값어치가 있습니다. fontencpdfLaTeX용 패키지이며, XeLaTeX와 LuaLaTeX에서는 대신 fontspec을 씁니다(그쪽은 TU가 기본이라 이 문제 자체가 잘 생기지 않습니다).

pdfLaTeX라면 \usepackage[T1]{fontenc}를 쓴다

pdfLaTeX로 조판한다면 프리앰블에 \usepackage[T1]{fontenc} 를 쓰는 것이 정석입니다. 문서의 글꼴 인코딩을 T1로 바꾸어 OT1 기본값의 폐해, 곧 악센트가 붙은 단어가 하이픈 처리되지 않고 PDF에서 복사하면 깨지는 문제를 한꺼번에 없앱니다. fontenc 문서도 같은 이야기를 합니다. 프랑스어, 독일어, 이탈리아어, 폴란드어 등 넓은 서유럽 언어를 지원하며, 악센트 문자가 있는 단어도 LaTeX가 하이픈 처리하고 출력을 복사해 붙여넣을 수 있다고 말입니다. 옵션에 여러 인코딩을 나열하면 마지막에 적은 것이 기본값이 되므로(\encodingdefault가 그것으로 설정됨), 그리스어를 섞는 문서라면 \usepackage[LGR,T1]{fontenc}라고 써서 본문은 T1로 두고 필요한 곳에서만 LGR로 전환합니다.

document.tex
\documentclass{article}
\usepackage[T1]{fontenc}   % font encoding -> T1 (Cork)
% Input is UTF-8 by default on pdfLaTeX, so inputenc is usually unneeded.
\begin{document}
% With T1 these words hyphenate and survive copy-and-paste out of the PDF.
Na\"ive r\"esum\"e, \"uberfl\"ussig, Stra\ss{}e.
\end{document}