使用 XeLaTeX 在 EPS 文件中使用负坐标

使用 XeLaTeX 在 EPS 文件中使用负坐标

我遇到了 XeLaTeX 和 EPS 文件与负坐标不一致的情况。图形的环绕块计算正确;但是,图形的内容放错了位置(坐标(0, 0)是方块相邻的位置)。

糟糕的结果

为了进行比较,请参见预期结果

好结果

有什么意义呢,这种行为改变了从 TeX Live 2009 更新至 TeX Live 2013 后我认为这是一个错误pdflatex,因为我获得了预期的结果。

我一直在研究 texlive 文件,发现重要的变化在于xetex.def 文件,似乎是 v0.96 更新。我想知道这是回归错误还是预期行为。如果它是正确的,为什么它与不同pdflatex。谢谢。

下面是该文件和该图的 MWE。

\documentclass{minimal}

\usepackage{graphicx}

\begin{document}
Lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum.
\includegraphics[width=0.25\textwidth]{fig.eps}
Lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum.
\end{document}

以下图片来自 Metapost

prologues:=3;
u:=1cm;

beginfig(1);

draw unitsquare.scaled(3u);
fill unitsquare.scaled(3u).shifted(-3u,-3u);

% this is a quickfix for the issue
%currentpicture := currentpicture shifted (-llcorner currentpicture);

endfig;

end

答案1

你不能使用 LuaTeX 吗?那么你就可以将 MP 代码集成到文档中:

\documentclass{article} 
\usepackage{luamplib}

\begin{document}

Lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum.
%
\begin{mplibcode}
u:=1cm;
beginfig(1);
draw unitsquare.scaled(3u);
fill unitsquare.scaled(3u).shifted(-3u,-3u);
endfig;
\end{mplibcode}
%
Lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum.
\end{document}

在此处输入图片描述

答案2

我也将这个问题传播到了 TeX Live 邮件列表中,这是一个错误,现已被修复(感谢愿意帮助的开发人员),但仅限于开发版本。

相关内容