以下 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 的字体,该字体始终是文本字体,因此可能与基本的数学字体不同。