XeLaTeX 中的 Metapost 图像发生偏移

XeLaTeX 中的 Metapost 图像发生偏移

当我在 XeLaTeX 中使用 Metapost 制作的 EPS 图像时,图像不在正确的位置。

这是我的代码:

\documentclass[a4paper,12pt]{article}
\usepackage{graphicx}   
\usepackage{epsfig}

\begin{document}

    \begin{tabular}{|c|}\hline 
        \psfig{figure=pix-1.eps} \\ \hline
    \end{tabular}

\end{document}

输出为:

输出

如果我使用不是 Metapost 制作的其他 EPS 图像,则不会出现问题。我该如何解决这个问题?

xelatex 和 metapost 编译器是 MikTex 2.9.6210 64 位。

编辑:图像的源代码:

prologues:=3;
filenametemplate "%j-%c.eps"; 

verbatimtex
%&latex
\documentclass{article}
\usepackage{amsmath,amssymb}
\begin{document}
etex

input TEX

TEXPRE("%&latex" & char(10) & "\documentclass{article}\begin{document}");
TEXPOST("\end{document}");

beginfig(1)
    u := 1cm;
    lx := 1u;   
    sx := -1.2;
    ex := 1.2;
    rx := (ex - sx)/40;

    drawarrow (-1.5u,0) -- (1.2u,0);
    drawarrow (0,-3u) -- (0,3u);
    drawoptions(withpen pensquare scaled 1.2);
    for i = .5 step 0.5 until 2:
        draw (sx,i*sx*sx)*lx for j = 1 upto 40:
                .. (sx + j*rx,i*((sx + j*rx)**2))*lx
            endfor;
        label.rt("a=" & decimal(i),(ex,i*ex*ex)*lx);
    endfor;
    drawoptions();
endfig;

答案1

XeLaTeX(实际上xdvipdfmx)在 EPS 包含方面存在一些问题。

解决方法很简单:改变

filenametemplate "%j-%c.eps"; 

进入

filenametemplate "%j-%c.mps"; 

并且您的文档可以

\documentclass[a4paper,12pt]{article}
\usepackage{graphicx}

\begin{document}

\begin{tabular}{|c|}\hline
\includegraphics{figure-pix-1.mps} \\ \hline
\end{tabular}

\end{document}

在此处输入图片描述

通过.mps扩展,图形文件可以通过不同的驱动程序读取,直接将 Metapost 生成的 Postscript 代码转换为 PDF 代码。

答案2

这在 xetex.def 注释中有部分记录,但默认行为似乎是错误的,然而目前的情况是您需要将文件重命名为.mps扩展名或使用--vorigin选项xdvipdfmx

\documentclass[a4paper,12pt]{article}
\usepackage{graphicx}   


\begin{document}

    \begin{tabular}{|c|}\hline 
        \includegraphics{pix-1.eps} \\ \hline
    \end{tabular}

\end{document}

使用命令行

xelatex -output-driver='xdvipdfmx --mvorigin ' file

生产

在此处输入图片描述

相关内容