我遇到了一个奇怪的问题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 代码,所以我无法找到它。
也许应该将问题发布到fontspec
或graphicx
,但在此之前,有人可以为我提供解决此问题的快速解决方案吗?
编辑 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}