![Невидимые математические символы с unicode-math и ntheorem](https://rvso.com/image/254712/%D0%9D%D0%B5%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D1%8B%D0%B5%20%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B%20%D1%81%20unicode-math%20%D0%B8%20ntheorem.png)
При компиляции этого кода с помощью lualaTeX
(из TeXLive 2011),
\documentclass{minimal}
\usepackage{unicode-math}
\usepackage{ntheorem,thmtools}
\setmathfont{xits-math}
\makeatletter
\newtheoremstyle{mathfonttest}
{\item[\theorem@headerfont $ABC$ DEF $:!?$ ]} % 1. option
{\item[$ABC$ DEF ]} % 2. option
\makeatother
\declaretheorem[style=mathfonttest]{test}
\begin{document}
\begin{test} % 1. option, ABC invisible
Something.
\end{test}
\begin{test}[triggers 2. option] % 2. option, ABC visible
Something.
\end{test}
\end{document}
первый ABC, и вообще любой греческий или латинский символ в режиме встроенной математики – когда ему предшествует \theorem@headerfont
– невидим, и я понятия не имею, почему. Я хочу использовать математический код в необязательном или альтернативном описании для определения типа '1.1. Определение ($pi$)'.
Кто-нибудь знает, как решить или обойти эту проблему?
решение1
Проблема в том, что \theorem@headerfont
вызовы \theorem@checkbold
и этот макрос делает
\if b\expandafter\@car\f@series\@nil\boldmath\fi
Вот причина исчезновения: используемый шрифт жирный, и это приводит \boldmath
к срабатыванию, но XITS Math имеетнетжирный вариант.
Если вы хотите использовать ntheorem
математические выражения в подписях к теоремам, вам нужно использовать нежирный шрифт.
В последних дистрибутивах TeX (TeX Live 2012) должна быть жирная версия XITS Math, поэтому вы можете попробовать обновить ее.