microtype 与 mathastext:未知槽号错误

microtype 与 mathastext:未知槽号错误

以下 MWE 可以编译pdftex但会产生神秘的警告。

\documentclass{article}
\usepackage{libertine}
\usepackage{mathastext}
\usepackage{microtype}
\begin{document}
Here is some text
\end{document}

警告如下:

Package microtype Warning: Unknown slot number of character
(microtype)                `\%'
(microtype)                in font encoding `OT1' in protrusion list
(microtype)                `default'.

编译后的文档似乎没有任何问题,但我在完整文档中发现了数十个这样的错误,我想知道这是什么意思......

添加\usepackage[T1]{fontenc}并没有帮助(除了错误现在是关于 T1 编码)。排列包的顺序似乎也没有帮助。

A \listfiles

 *File List*
 article.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
 fontenc.sty
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
libertine.sty    2009/05/22a - 4.5.1a -LaTeX: Font libertine - (License GPL) Michael Niedermair
  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
    calc.sty    2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
  ifthen.sty    2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
  xcolor.sty    2007/01/21 v2.11 LaTeX color extensions (UK)
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
  pdftex.def    2010/03/12 v0.04p Graphics/color for pdfTeX
  xspace.sty    2006/05/08 v1.12 Space after command names (DPC,MH)
     fxl.inc
     fxb.inc
microtype.sty    2009/03/27 v2.3d Micro-typography with pdfTeX (RS)
microtype.cfg    2009/03/27 v2.3d microtype main configuration file (RS)
mathastext.sty    2011/02/07 1.12 Use the text font in simple mathematics
   t1fxl.fd    2009/05/22 scaled font definitions for libertine T1/fxl (Nm).
supp-pdf.mkii
 ***********

就像我说的,这个错误似乎没有任何意义错误的使用输出 PDF,但我想知道发生了什么。(我正试图清除日志文件中的杂乱信息……

我了解到该silence软件包可以隐藏这些错误,但我想知道是什么原因造成的。似乎与该特定字体没有冲突,因为如果您用其他字体替换它,它也会起作用libertine

有人能确认他们遇到了这个错误吗?

答案1

出于(对我来说)神秘的原因,数学文本重新定义\%为尊重\mathbf\mathit处于数学模式:

\renewcommand{\%}{\ifmmode\mt@mmode@percent\else\char37\relax\fi}

其中\mt@mmode@percent表示\mathchar"7425。它对\#\$和 也做同样的事情\&,但似乎只有\%被认为是微型它的突起表,这个定义使它感到困惑。做

\chardef\%=37

加载后数学文本(从而恢复原始定义)避免了警告。当然

\let\originalpercent\%
\usepackage{mathastext}
\let\%\originalpercent

完全一样。

\mathchar"7425方法:

  • 通常使用数学系列 4 中的字符 0x25(十六进制,十进制 37),这是正常的数学字体,由以下项定义数学文本(数字实际上可能会改变,但它始终指的是基本字体);
  • 然而,如果\mathgroup大于 -1(即我们处于\mathbf\mathit或其他此类命令中),则使用来自系列的字符 0x25 \mathgroup

使用恢复的定义,\%在数学模式下将使用来自数学系列 0 的字体,该字体始终是文本字体,因此可能与基本的数学字体不同。

相关内容