LaTeX. Пакет unicode-math
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
можно писатьα
.
- Позволяет вводить математические символы (например, ∂, ∀, ∫) напрямую, без использования команд LaTeX. Например, вместо
Совместимость со шрифтами
- Поддерживает шрифты с OpenType-математикой, такие как:
- Latin Modern Math
- STIX Two Math
- XITS Math
- Asana Math
- Fira Math
- Поддерживает шрифты с OpenType-математикой, такие как:
Расширенные возможности форматирования
- Автоматическое определение стилей (курсив, жирный, 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}
Работа с разными стилями шрифтов
- Для заголовков с нестандартными шрифтами (например, sans-serif) используйте:
\setmathfont[version=sans]{Fira Math} \mathversion{sans} % Активация sans-serif версии
- https://tex.stackexchange.com/questions/546828/math-mode-in-titles-doesnt-match-font
- Для заголовков с нестандартными шрифтами (например, sans-serif) используйте:
Избегание
\mathbf
для греческих букв- Команда
\mathbf
может некорректно работать с греческими символами. - Используйте
\symbf
изunicode-math
:\symbf{\alpha} % Жирный греческий символ
- Команда
7 Совместимость с другими пакетами
7.1 Совместимость unicode-math и hyperref
- Все символы
unicode-math
работают корректно внутри гиперссылок. - Можно использовать команды
unicode-math
(\symup
,\symit
,\symbf
) внутри ссылок.
7.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}$}}
Это позволяет сохранить математический символ в тексте документа, но использовать текстовое представление в закладках.
Конфликты шрифтов и стилей
- В заголовках секций математические символы могут отображаться некорректно (например, не жирным шрифтом).
- Решение:
Для сложных случаев используйте
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