fontspec 和 graphicx 之间不兼容(XeTeX 的错误)

fontspec 和 graphicx 之间不兼容(XeTeX 的错误)

我遇到了一个奇怪的问题fontspec包和graphicx包。我们先看看 MWE。

%!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}


(来源:新艾网

在序言中,我加载了graphicx包和fontspec包,然后我将其设置Times New Roman为文本的默认字体以及命令的字体test。在的定义中\test,我启用了AutoFakeBold。在文档正文中,在两个文本链之间,我使用命令插入了一张照片\includegraphics

本来是一篇正常的稿件,只是为了让不正常的输出更加引人注目AutoFakeBold,设置了5。然而,编译之后,后面一行文字出现了一个意想不到的结果。那就是,这一行文字不应该被加粗。

更令人惊讶的是,如果

  • 取消传递给的选项\includegraphics
  • 或者在后面添加一些文字\textbf{}

问题就会消失。

我怀疑问题在于包FakeBold的机制fontspec和/或包的 key-val 机制graphicx,但不幸的是,我没有读过 LaTeX3 代码,所以我无法找到它。

也许应该将问题发布到fontspecgraphicx,但在此之前,有人可以为我提供解决此问题的快速解决方案吗?


编辑 2015/01/05

感谢[电子邮件保护],这似乎是 XeTeX 的一个 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


(来源:新艾网

我买了一张票西特克斯希望这个问题能尽快得到解决。

答案1

不错的测试文件,一种解决方法是在粗体文本后面放置一些文本,即使是不可见的文本(例如零宽度空格)似乎也足够了:

在此处输入图片描述

\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}.

\textbf{Bold Test}^^^^200b

\includegraphics[scale = 0.1]{photo}

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

相关内容