我遇到了以下问题,我花了一些时间才深入研究 MWE。问题似乎是tcolorbox
在 tcolorboxes 中将脚注标记设置为斜体。当用作XCharter
数学字体时,会导致脚注标记未设置为上标。
看看以下 MWE(我使用 LuaLaTeX 来构建它们):
\documentclass{article}
% Geometry is just to get everything in a small area
\usepackage[paperheight=5cm,paperwidth=9cm,margin=5mm]{geometry}
\usepackage{tcolorbox}
% FONT SETTINGS HERE
\begin{document}
\begin{tcolorbox}
A\footnote{footnote} test! This \(\mathcal{D}\) should have a fancy swirl.
Normal a, italic \emph{a}, math \(a\).
\end{tcolorbox}
A\footnote{footnote} outside works just fine as expected.
\end{document}
和
\usepackage[otfmath]{XCharter}
或者
\usepackage{xcharter-otf}
我获得了这个结果,它具有正确的数学字体,但没有将脚注标记设置为上标:
只需
\usepackage{XCharter}
以下解决方案
\usepackage{fontspec}
\setmainfont{XCharter}
\usepackage{unicode-math}
\setmathfont{XCharter Math}
到目前为止似乎运行良好,但我想知道是否缺少了什么,因为文档XCharter
表明使用第一个例子应该是可行的方法。
尽管我对最后一部分有解决方案,但我还是想了解这个问题来自哪里,以及这是预期的行为还是可能是一个错误。
答案1
该包xcharter-otf
,就是您在XCharter
使用otfmath
包调用时得到的,它确实
\RequirePackage{realscripts}
这对于数字很有效,但对于斜体字母则无效。
\documentclass{article}
\usepackage{realscripts}
\usepackage{fontspec}
\setmainfont{XCharter}
\begin{document}
t\textsuperscript{1234567890abcdefg}
t\textsuperscript{\itshape 1234567890abcdefg}
\end{document}
realscripts
除了采用较低级别的构造之外,我看不出有其他方法可以禁用加载。
\documentclass{article}
% Geometry is just to get everything in a small area
\usepackage[paperheight=5cm,paperwidth=9cm,margin=5mm]{geometry}
\makeatletter
\disable@package@load{realscripts}{}
\makeatother
\usepackage[otfmath]{XCharter}
\usepackage{tcolorbox}
% FONT SETTINGS HERE
\begin{document}
\begin{tcolorbox}
A\footnote{footnote} test! This \(\mathcal{D}\) should have a fancy swirl.
Normal a, italic \emph{a}, math \(a\).
\end{tcolorbox}
A\footnote{footnote} outside works just fine as expected.
\end{document}
或者,\realsuperscript
禁用\parbox
和minipage
。
\documentclass{article}
% Geometry is just to get everything in a small area
\usepackage[paperheight=5cm,paperwidth=9cm,margin=5mm]{geometry}
\usepackage[otfmath]{XCharter}
\usepackage{tcolorbox}
\AddToHook{cmd/@parboxrestore/after}{%
\RenewCommandCopy\realsuperscript\fakesuperscript
}
% FONT SETTINGS HERE
\begin{document}
\begin{tcolorbox}
A\footnote{footnote} test! This \(\mathcal{D}\) should have a fancy swirl.
Normal a, italic \emph{a}, math \(a\).
\end{tcolorbox}
A\footnote{footnote} outside works just fine as expected.
\end{document}