Microtype 在数学模式下给出错误的字母间距

Microtype 在数学模式下给出错误的字母间距

使用该命令会导致数学字母间距错误。我在使用并将数学放在部分(也在那里使用)\lsstyle时遇到了这个问题。渲染该部分后,数学字母间距从此就错误了。classicthesismicrotype

最小工作示例

\documentclass{minimal}
\usepackage{amsmath}
\usepackage{microtype}

\DeclareMathOperator{\MyOp}{MyVeryLargeOperator}

\begin{document}
Before: $\MyOp(1,2,3)$. % this is how it should be.

{\lsstyle $X^2 + Y^2 = Z^2$} % \lsstyle and math inside a group.

After: $\MyOp(1,2,3)$. % now math has wrong letterspacing.

\end{document}

输出

在此处输入图片描述

问题

有什么想法可以解决这个问题吗?我对使用 classicthesis 的修复尤其感兴趣。您可以在此处看到问题:

\documentclass[pdfspacing]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[eulermath]{classicthesis}
\usepackage{amsmath}

\DeclareMathOperator{\diag}{diagonal}

\begin{document}
\section{Usual section works fine}

\[ \int f(x) \mathrm dx, \; \diag(a_1, \ldots, a_n), \; \ker(f) \]

\section{But some math in a title $X^2+Y^2=Z^2$ messes it up}

\[ \int f(x) \mathrm dx, \; \diag(a_1, \ldots, a_n), \; \ker(f) \]

\end{document}

在此处输入图片描述

答案1

是的,这是 中的一个错误microtype。在软件包更新之前,临时修复方法是添加

\makeatletter\let\glb@currsize\@empty\makeatother

在组内的 and math之后\lsstyle,强制重新设置数学字体。

编辑:此问题已在microtypev2.6 中修复。

相关内容