宏包冲突:fontspec 与 graphicx

31 views
Skip to first unread message

Liam Huang

unread,
Jan 3, 2015, 5:44:14 AM1/3/15
to ct...@googlegroups.com
没想到真要用到这个后备论坛……

嗯,今天使用 ctexart 的时候偶然构建出了一个 bug,经简代码之后发现是 fontspec 和 graphicx 之间的问题。俩常用宏包出问题还是第一次见到,嗯……

MEW 如下:

%!TEX program = xelatex
\documentclass{article}
\usepackage{graphicx}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\newfontfamily\test[AutoFakeBold = 5]{Times New Roman}
\begin{document}
\test
Test
\textbf{Bold Test}

\includegraphics[scale = 0.1]{photo}

Words that shouldn't be bolded. Even if \textmd{textmd-ed}.
\end{document}

编译效果见:

字体随便选,图片也随便选,都不影响问题的重现。AutoFakeBold 设置成 5 是让异常更明显。

按照代码,最后一行显然不应该加粗。然而实际上却粗得一塌糊涂,甚至用 \textmd 也没用。

不过,如果:

* 除掉 \includegraphics 的选项,
* 或者在 \textbf{} 后面再弄点什么别的文字,

后面的文字就正常了。

估计是 AutoFakeBold 机制和 graphicx 的 KV 选项之间的冲突,不过我还是读不进 ltx3 的代码(囧),也就找不到问题了。

嗯,是不是可以扔个 issue 过去吐槽呢?以及,有木有 quick fix?

Qing Lee

unread,
Jan 3, 2015, 7:29:29 AM1/3/15
to ct...@googlegroups.com
居然有妹子照片。

这应该是 XeTeX 的 embolden 的 Bug,MWE 可以简化为
% !TeX program = xetex

\font\x="[cmunrm.otf]"
\font\bx="[cmunrm.otf]:embolden=5;"

\x Test
{\bx Bold Test}
\XeTeXpicfile "example-image.png" width 1cm\relax
Words that shouldn't be bolded.


\tracingoutput=1
\showboxbreadth=\maxdimen
\showboxdepth=\maxdimen

\bye

你给 XeTeX 发 Bug 报告吧,也可以发到它的邮件列表。

Liam Huang

unread,
Jan 5, 2015, 11:47:51 AM1/5/15
to ct...@googlegroups.com
reported

https://sourceforge.net/p/xetex/bugs/105/

在 2015年1月3日星期六UTC+8下午8时29分29秒,Qing Lee写道:
Reply all
Reply to author
Forward
0 new messages