使用该命令会导致数学字母间距错误。我在使用并将数学放在部分(也在那里使用)\lsstyle
时遇到了这个问题。渲染该部分后,数学字母间距从此就错误了。classicthesis
microtype
最小工作示例
\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
,强制重新设置数学字体。
编辑:此问题已在microtype
v2.6 中修复。