![使用 unicode-math 和 ntheorem 隐藏数学字符](https://linux22.com/image/254712/%E4%BD%BF%E7%94%A8%20unicode-math%20%E5%92%8C%20ntheorem%20%E9%9A%90%E8%97%8F%E6%95%B0%E5%AD%A6%E5%AD%97%E7%AC%A6.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,因此您可以尝试更新您的版本。