使用 unicode-math 和 ntheorem 隐藏数学字符

使用 unicode-math 和 ntheorem 隐藏数学字符

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,因此您可以尝试更新您的版本。

相关内容