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