找回密码
 快速注册
搜索
查看: 58|回复: 8

latex里字体出现的警告

[复制链接]

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

abababa 发表于 2024-3-9 13:51 |阅读模式
如题,我编译时总是出现下面三个警告,以前一直没留意,这个要怎么解决?
  1. LaTeX Font Warning: Font shape `U/esvect/m/n' in size <4.015> not available
  2. (Font)              size <5> substituted on input line 15.
  3. LaTeX Font Warning: Font shape `U/stmry/m/n' in size <4.015> not available
  4. (Font)              size <5> substituted on input line 15.
  5. LaTeX Font Warning: Font shape `U/rsfs/m/n' in size <4.015> not available
  6. (Font)              size <5> substituted on input line 15.
复制代码

3

主题

452

回帖

6188

积分

积分
6188
QQ

显示全部楼层

爪机专用 发表于 2024-3-9 14:02
给一段可重现问题的最小代码呗
I am majia of kuing

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2024-3-9 15:14
爪机专用 发表于 2024-3-9 14:02
给一段可重现问题的最小代码呗

  1. \documentclass[10pt]{article}
  2. \usepackage{amsmath,yhmath}
  3. % 字体
  4. \usepackage{xltxtra,fontspec,xunicode}
  5. \usepackage[slantfont,boldfont]{xeCJK}
  6. % 公式中直接使用中文,不用加\text{}
  7. \xeCJKsetup{CJKmath=true}
  8. \punctstyle{kaiming}
  9. \usepackage{lipsum}
  10. \usepackage[inline]{asymptote}
  11. \begin{document}
  12. 题:$M$为双曲线$\frac{x^2}{a^2}-\frac{y^2}{b^2}, (a>0, b>0)$上异于顶点的任意一点,双曲线焦点为$F_1(-c,0), F_2(c,0)$,$\angle MF_1F_2=\alpha, \angle MF_2F_1=\beta$,求$\tan\frac{\alpha}{2}\cdot\cot\frac{\beta}{2}$。
  13. \begin{asydef}
  14. settings.prc = true;
  15. settings.embed = true;
  16. import three;
  17. import math;
  18. import geometry;
  19. import graph3;
  20. import texcolors;
  21. point perpAt(point C, line l) {
  22.         line m = perpendicular(C, l);
  23.         return intersectionpoint(m, l);
  24. }
  25. \end{asydef}
  26. \begin{asy}
  27. size(5cm,0);
  28. point F1=(-2,0), F2=(2,0), M=(1.5,3.5);
  29. hyperbola h=hyperbola(F1, F2, M);
  30. point I=incenter(F1,F2,M);
  31. point T=perpAt(I, line(F1,F2));
  32. circle c=circle(I,length(segment(I,T)));
  33. segment IF1=segment(I,F1);
  34. segment IF2= segment(I,F2);
  35. segment IT=segment(I,T);
  36. currentpen=OliveGreen+linewidth(1);
  37. draw(h);
  38. draw(M--F1--F2--cycle);
  39. currentpen=Purple+linewidth(1);
  40. draw(c);
  41. for(segment s:new segment[]{IF1,IF2,IT}) {
  42.         draw(s);
  43. }
  44. currentpen=blue+fontsize(8);
  45. for(point pp:new point[]{F1,F2,M}) {
  46.         dot(pp);
  47. }
  48. currentpen=purple+fontsize(8);
  49. for(point pp:new point[]{I,T}) {
  50.         dot(pp);
  51. }
  52. // 虚拟点,扩展可视范围
  53. dot((0,-2),invisible);
  54. currentpen=blue+fontsize(8);
  55. label("$F_1$", F1, align=SW);
  56. label("$F_2$", F2, align=SE);
  57. label("$M$", M, align=NE);
  58. currentpen=purple+fontsize(8);
  59. label("$I$", I, align=NW);
  60. label("$T$", T, align=SE);
  61. \end{asy}
  62. 证明:作$\triangle MF_1F_2$的内切圆$\odot I$,设其与$F_1F_2$切于点$T$。于是
  63. \[\tan\frac{\alpha}{2}\cdot\cot\frac{\beta}{2}=\frac{IT}{F_1T}\cdot\frac{F_2T}{IT}=\frac{F_2T}{F_1T}\]
  64. 由于$F_1T+F_2T=2c, F_1T-F_2T=MF_1-MF_2=2a$,所以$F_1T=a+c, F_2T=c-a$,所以$\frac{F_2T}{F_1T}=\frac{c-a}{c+a}$,即$\tan\frac{\alpha}{2}\cdot\cot\frac{\beta}{2}=\frac{c-a}{c+a}$。
  65. \end{document}
复制代码


如上代码,文件名为index.tex。编译时先xelatex index,再asy *.asy,最后再xelatex index,在index.log里就能看到这几个警告。警告和主楼的那个不太一样,觉得可能是字体的问题,这里我没设置字体。如果把作图那部分删除,就不会出警告。

另外不知道什么原因,作图之后的证明部分字体颜色都变成紫色了,但不影响主楼的问题。

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2024-3-9 15:31
abababa 发表于 2024-3-9 15:14
如上代码,文件名为index.tex。编译时先xelatex index,再asy *.asy,最后再xelatex index,在index.lo ...


将 fontsize(8) 改大一点,比如 fontsize(10),就不会出现警告。

可能是不能设太小,那些字体没那么小的字号?

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2024-3-9 15:35
kuing 发表于 2024-3-9 15:31
将 fontsize(8) 改大一点,比如 fontsize(10),就不会出现警告。

可能是不能设太小,那些字体没那么小的 ...

确实,但那些字母也变大了,有些简单的图里还行,有的图字母就压住线了。

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2024-3-9 16:20
abababa 发表于 2024-3-9 15:35
确实,但那些字母也变大了,有些简单的图里还行,有的图字母就压住线了。 ...

所以你照用 fontsize(8) 就行了,不用管这个警告。

设 fontsize(8) ,在生成的 index-1.tex 里变成 \fontsize{8.030000}{9.636000}\selectfont (多出 0.03 不知为啥,应该是 asy 的问题)
而只有出现 下下标 或 上上标 时,才会使用到比最小值 <5> 还小的 <4.015>
而且它也只是告诉你它会用最小值来代替,所以并不会有任何问题。

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2024-3-9 17:33
kuing 发表于 2024-3-9 16:20
所以你照用 fontsize(8) 就行了,不用管这个警告。

设 fontsize(8) ,在生成的 index-1.tex 里变成 \fontsize{8.030000}{9.636000}\selectfont (多出 0.03 不知为啥...


了解了一下字号相关的东西,发现其实就是这个多出 0.03 的问题。

我尝试过,在运行 asy *.asy 之后,打开 index-1.tex 手动将所有 8.030000 都改成 8,保存,再 xelatex 就不会有警告。

按我的粗略理解,这是因为 latex 预设了若干整数字号下的数学字体规则,其中就有 \DeclareMathSizes{8}{8}{6}{5},所以如果是 \fontsize{8}{...} 那它就会应用这个规则,下标 6,下下标 5。
但对于 8.030000 这种非常规数字,它就会用另一种方法去计算,下标为 0.7 倍,下下标为 0.5 倍,所以就会出现 4.015,小于字体的最小字号 5,于是警告。

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2024-3-9 18:43
本帖最后由 kuing 于 2024-3-9 18:57 编辑
kuing 发表于 2024-3-9 17:33
了解了一下字号相关的东西,发现其实就是这个多出 0.03 的问题。

我尝试过,在运行 asy *.asy 之后,打 ...


哦,看来是单位的问题,asy 的单位可能不是 pt 所以造成误差?

我又尝试将 fontsize(8) 改成 fontsize(8pt),警告就没有了!

那能否将 asy 的单位设为 pt?我不了解 asy……

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2024-3-9 21:28
kuing 发表于 2024-3-9 18:43
哦,看来是单位的问题,asy 的单位可能不是 pt 所以造成误差?

我又尝试将 fontsize(8) 改成 fontsize(8 ...

果然如此,弄成带单位的就好了。

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 12:05

Powered by Discuz!

× 快速回复 返回顶部 返回列表