LaTeX. Пакет unicode-math

2025-07-11 · 3 мин. для прочтения

LaTeX. Пакет unicode-math.

Содержание

1 Общая информация

  • Пакет unicode-math предназначен для работы с Unicode-символами в математических формулах.
  • Позволяет использовать широкий спектр математических символов напрямую в исходном коде документа и поддерживает OpenType-шрифты.
  • CTAN: https://ctan.org/pkg/unicode-math
  • Репозиторий: https://github.com/latex3/unicode-math
  • Пакет требует компиляторов XeLaTeX или LuaLaTeX.

2 Основные возможности

  • Поддержка Unicode-символов

    • Позволяет вводить математические символы (например, ∂, ∀, ∫) напрямую, без использования команд LaTeX. Например, вместо \alpha можно писать α.
  • Совместимость со шрифтами

    • Поддерживает шрифты с OpenType-математикой, такие как:
      • Latin Modern Math
      • STIX Two Math
      • XITS Math
      • Asana Math
      • Fira Math
  • Расширенные возможности форматирования

    • Автоматическое определение стилей (курсив, жирный, sans-serif)
    • Поддержка многострочных формул и сложных конструкций
    • Совместимость с пакетами amsmath и mathtools

3 Подключение пакета

  • Для использования добавьте в преамбулу:
\usepackage{unicode-math}
\setmathfont{Latin Modern Math} % Пример шрифта

4 Особенности и рекомендации

  • Работа с кириллицей и греческими буквами

    • В математических формулах используйте команды \text{} для текстовых символов:
      $\text{Привет} \quad \text{αβγ}$
      
  • Команды для математического шрифта

    • Пакет вводит новые команды для разных стилей:
      • \symup — upright (прямой)
      • \symit — italic (курсив)
      • \symbf — bold (жирный)
      • \symsf — sans-serif (гротеск)
  • Настройка стилей и версий математики

    • Можно создавать альтернативные версии математических шрифтов:

5 Список поддерживаемых шрифтов

ШрифтТипОсобенности
Latin Modern MathБесплатныйСтандарт для LaTeX
STIX Two MathБесплатныйШирокая поддержка символов
XITS MathБесплатныйСовместимость с Times New Roman
Cambria MathПроприетарныйВстроенный в Windows
Minion MathПроприетарныйВысокий уровень детализации

6 Дополнительные рекомендации

  • Порядок загрузки пакетов

    • hyperref рекомендуется подключить последним, чтобы избежать конфликтов:
      \usepackage{unicode-math}
      \usepackage{hyperref}
      
  • Работа с разными стилями шрифтов

  • Избегание \mathbf для греческих букв

    • Команда \mathbf может некорректно работать с греческими символами.
    • Используйте \symbf из unicode-math:
      \symbf{\alpha}  % Жирный греческий символ
      

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

7.1 Совместимость unicode-math и hyperref

  • Все символы unicode-math работают корректно внутри гиперссылок.
  • Можно использовать команды unicode-math (\symup, \symit, \symbf) внутри ссылок.

7.1.1 Основные проблемы

  1. Предупреждения о недопустимых токенах

    • При компиляции документа с математическими символами в заголовках появляются предупреждения:

      Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
      (hyperref)                removing \tau_2 on input line ...
      
    • PDFDocEncoding не поддерживает большинство математических символов Unicode.

    • hyperref автоматически преобразует заголовки в закладки, что вызывает конфликты при наличии сложных символов.

    • Решение: Используйте команду \texorpdfstring для указания альтернативного текста для закладок pdf:

      \section{\texorpdfstring{$\tau_2$}{tau2}}
      \section{\texorpdfstring{$\varepsilon$}{$\symit{\epsilon}$}}
      
    • Это позволяет сохранить математический символ в тексте документа, но использовать текстовое представление в закладках.

  1. Конфликты шрифтов и стилей

    • В заголовках секций математические символы могут отображаться некорректно (например, не жирным шрифтом).
    • Решение:
      • Для сложных случаев используйте pdfencoding=auto и psdextra в опциях hyperref:

        \usepackage[pdfencoding=auto, psdextra]{hyperref}
        \usepackage{textgreek}
        \pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}}
        
        • Вариант pdfencoding=auto или unicode включает закладки в Unicode с большим количеством символов.
        • Вариант psdextra определяет множество математических символов.
        • \pdfstringdefDisableCommands может использоваться для определения строки замены закладки для команд.
      • Настройте альтернативные версии шрифтов для заголовков:

        \setmathfont[version=bold]{Latin Modern Math}
        \mathversion{bold}  % Активация жирного стиля
        
    • https://tex.stackexchange.com/questions/251491/math-symbol-in-section-heading
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.