Пакет fontenc - Управление кодировками шрифтов в LaTeX

Загрузка шрифтов в Latex. Package titlesec

Пакет fontenc - Управление кодировками шрифтов в LaTeX

Введение

Пакет fontenc является критически важным для правильного отображения текста в LaTeX-документах, особенно при работе с не-ASCII символами (кириллицей, диакритическими знаками и др.).

Установка и базовое использование

\usepackage[<кодировки>]{fontenc}

Основные кодировки

Для латинских алфавитов:

  • T1 - Расширенная латинская кодировка (поддержка акцентов, лигатур)
  • OT1 - Базовая кодировка TeX (устаревшая)

Для кириллицы:

  • T2A - Основная кириллическая кодировка
  • T2B - Альтернативная кириллическая кодировка
  • T2C - Дополнительная кириллическая кодировка

Примеры комбинаций:

\usepackage[T1,T2A]{fontenc} % Латинские и кириллические символы
\usepackage[T1]{fontenc} % Только латинские символы

Полный список поддерживаемых кодировок

КодировкаОписание
OT1Базовая кодировка TeX
T1Расширенная латинская
T2AОсновная кириллица
T2BАльтернативная кириллица
T2CДополнительная кириллица
LY1Улучшенная кодировка для LaTeX
Другие специализированные кодировки

Команды пакета

Основные команды:

  1. \fontencoding{<кодировка>} - Переключает текущую кодировку шрифта
  2. \selectfont - Применяет изменения кодировки

Пример использования команд:

{\fontencoding{T1}\selectfont Текст в T1 кодировке}
{\fontencoding{T2A}\selectfont Текст в T2A кодировке}

Практические примеры

Пример 1: Базовое использование

\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}

\begin{document}
Латинские символы: Café, naïve

Кириллические символы: Пример русского текста
\end{document}

Пример 2: Смешение кодировок в документе

{\fontencoding{T1}\selectfont
This text uses T1 encoding for proper hyphenation of words like "naïve".}

{\fontencoding{T2A}\selectfont
Этот текст использует кодировку T2A для корректного отображения кириллицы.}

Пример 3: Определение нового кодированного шрифта

\DeclareFontFamily{T2A}{cmr}{}
\DeclareFontShape{T2A}{cmr}{m}{n}{<-> ecrm1000}{}

Проблемы и решения

Проблема 1: Неправильное отображение кириллицы

Решение:

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

Проблема 2: Разрывы слов с диакритическими знаками

Решение:

\usepackage[T1]{fontenc} % Для правильного разрыва слов типа "naïve"

Проблема 3: Конфликты кодировок

Решение: Явное указание кодировок:

\usepackage[T1,T2A]{fontenc}

Совместимость с другими пакетами

С inputenc:

\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc} % Рекомендуется всегда использовать utf8

С babel:

\usepackage[T1,T2A]{fontenc}
\usepackage[english,russian]{babel}

С современными шрифтовыми пакетами (fontspec):

\usepackage{fontspec} % Для XeLaTeX/LuaLaTeX
% fontenc не нужен при использовании fontspec

Расширенные возможности

Определение собственных кодировок:

\DeclareFontEncoding{XYZ}{}{}
\DeclareErrorFont{XYZ}{cmr}{m}{n}{10}

Настройка подстановок шрифтов:

\DeclareFontSubstitution{T2A}{cmr}{m}{n}

Рекомендации

  1. Для документов с кириллицей всегда используйте:
    \usepackage[T2A]{fontenc}
    
  2. Для документов с европейскими языками:
    \usepackage[T1]{fontenc}
    
  3. Для многоязычных документов:
    \usepackage[T1,T2A]{fontenc}
    
  4. При использовании XeLaTeX/LuaLaTeX вместо fontenc используйте fontspec

Заключение

Пакет fontenc обеспечивает критически важную функциональность для правильного отображения текста в различных языках. Правильная настройка кодировок шрифтов предотвращает множество проблем с отображением символов и переносом слов.