![平均能量损失](https://linux22.com/image/467855/%E5%B9%B3%E5%9D%87%E8%83%BD%E9%87%8F%E6%8D%9F%E5%A4%B1.png)
我发现在图片标题中使用 时出现了一些非常奇怪的行为\sfrac
。原因似乎是字体大小问题,但我不知道如何解决。
平均能量损失
问题出现在以下示例中。
\documentclass[11pt]{article}
\usepackage{amssymb}
\usepackage{anyfontsize}
\usepackage[font=small]{caption}
\usepackage{xfrac}
\begin{document}
\begin{figure}
\caption{Test 1: $\sfrac12$, $\sfrac14$.}
\end{figure}
\begin{figure}
\caption{Test 2: $\sfrac12$, $\sfrac14$.}
\end{figure}
\begin{figure}
\caption{Test 3: $\sfrac12$, $\sfrac14$.}
\end{figure}%
\end{document}
问题
图形标题连续三次相同,但只有第三次会触发错误,即以下内容(取自日志文件,它在那里出现了六次):
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
! Improper `at' size (0.0pt), replaced by 10pt.
<to be read again>
relax
l.20 \caption{Test 3: $\sfrac12$, $\sfrac14$.}
I can only handle fonts at positive sizes that are
less than 2048pt, so I've changed what you said to 10pt.
观察和评论
- 如果我去掉其中一个数字并只留下两个,一切似乎都很好。
- 删除 、 或 包中的任何一个
amssymb
(anyfontsize
甚至caption
只是small
caption 包选项)都可以解决问题。不过,我不想在我的原始文档中删除其中任何一个(讽刺的是,我相信我开始使用它们anyfonsize
是为了摆脱字体大小替换警告……)
任何帮助都将不胜感激,即使只是为了了解这里发生了什么。
答案1
问题出在过时的软件包上anyfontsize
:
% anyfontsize.sty -- allow font size substitutions
% by Péter Szabó <[email protected]> at Sat Feb 3 13:56:49 CET 2007
正确的使用包是fix-cm
。
\RequirePackage{fix-cm}% because you're using OT1
\documentclass[11pt]{article}
\usepackage{amssymb}
\usepackage[font=small]{caption}
\usepackage{xfrac}
\begin{document}
\begin{figure}
\caption{Test 1: $\sfrac12$, $\sfrac14$.}
\end{figure}
\begin{figure}
\caption{Test 2: $\sfrac12$, $\sfrac14$.}
\end{figure}
\begin{figure}
\caption{Test 3: $\sfrac12$, $\sfrac14$.}
\end{figure}%
\end{document}
如果您传递给 T1 编码,则可以fix-cm
照常加载。\documentclass
\usepackage[T1]{fontenc}
但当然\sfrac
只能在食谱中使用。