在安装了 texlive-full 的 Ubuntu 10.10 上,xelatex 将我的图形逆时针旋转 90 度

在安装了 texlive-full 的 Ubuntu 10.10 上,xelatex 将我的图形逆时针旋转 90 度

我正在使用最新的 ubuntu 和 texlive-full 包。当我做\includegraphics这样的简单操作时:

\begin{figure}[h]
  \centering
    \rotatebox{-90}{\includegraphics[width=8cm]{problem1}}
  \label{fig:prob1}
\end{figure}

如果我不包含该\rotatebox命令,我的图形将逆时针旋转 90 度。此外,我收到此警告:

** WARNING ** << /Rotate 90 >> found. (Not supported yet)

使用 XeLaTeX 渲染时。

我好像和这个家伙有同样的问题: http://www.mail-archive.com/[电子邮件保护]/msg01532.html

有解决办法吗?在我的其他(较旧的)Ubuntu 上没有发生这种情况。

答案1

嗯,我没有答案,但我相信我可以给你一些提示。

正如我在评论中所说,我猜你的 eps 图形文件/Rotate 90里面确实有那个“”命令,而且没问题。你可以使用以下命令进行检查:

grep "Rotate 90" graphics.eps

(只需将“ graphics.eps”替换为您的图像文件名)

所以,我认为问题出在 XeLaTeX 的图形驱动程序上。我无法检查这一点,我身边没有这样的图像。

无论如何,我会尝试用以下方法“重新提取”此类图像:向量圖;它声称它“对封装的 PostScript (EPS) 文件执行了等效的优化”。

但不确定这是否有帮助。


更新

我已经编辑了您的 EPS 文件(使用vim),请查看区别:

 %%+ font Helvetica-Oblique
 %%+ font Helvetica-BoldOblique
 %%+ font Symbol
-%%DocumentMedia: letter 612 792 0 () ()
+%%DocumentMedia: letter 792 612 0 () ()
 %%Title: R Graphics Output
 %%Creator: R Software
 %%Pages: (atend)
@@ -12,7 +12,7 @@
 %%BoundingBox: 54 144 558 648
 %%EndComments
 %%BeginProlog
-/bp  { gs 612.00 0 translate 90 rotate gs } def
+/bp  { gs 0 0 translate 0 rotate gs } def
 % begin .ps.prolog
 /gs  { gsave } def
 /gr  { grestore } def

这是结果 - 使用 LaTeX 而不是 XeLaTeX (!!) 实现的:

在此处输入图片描述

因此,这不是解决方案真的,而只是演示(我可能找到“更好”的数字)。所以,我确实认为 [xe]latex 无法显示 eps 图形文件。是的,我试过用,但eps2eps没有成功。哦,好吧,我已经用 替换了\usepackage{Sweave}\usepackage{graphicx}我希望没有任何区别。

XeLaTeX 的结果与我的 texlive(2009-7,我相信是当前的 Ubuntu 版本)完全相同。

嗯,这非常有吸引力。)


更新 2

inkscape --export-eps=hist50-good.eps hist50.eps

这会产生“良好”的 EPS(4678 源扩展为 78626 字节长的文件!但我认为相当有用)。

inkscape --export-text-to-path --export-eps=hist50-good.eps hist50.eps

这会将大小减少到 40435 字节。

结果,产生了正确的页面。

我认为您可以批量处理所有 EPS 文件(请务必进行备份)

我仍不确定这是否可以为你提供解决方案。

附言:我觉得这是一个错误?...您的图像非常好,至少gv(这里是 3.6.8)和inkscape(这里是 0.47 r22583)显示正确。

答案2

我也没有真正的答案,我只是想确认问题仍然存在 - 我会称之为问题,如果 pdflatex 和 xelatex 产生的结果不同,即一个旋转图形而另一个不旋转。这对我来说肯定是个问题,因为我与其他人共享文档,有些人会用 pdflatex 编译它,而其他人会用 xelatex 编译它。

我现在第一次遇到这个问题,使用的是 Adob​​e Acrobat 制作的 pdf - 所以我没有 eps 需要修复。有趣的是,Linux 上的 TeXLive 2009 和 Windows 上的 MikTeX 2.9 也存在同样的问题,所以这确实是 xelatex 的问题。

至于解决方案,我所做的一件事是使用 gsview,将 pdf 转换为 eps,然后再转换回 pdf - 生成的文件几乎大 3 倍,但可以适用于两个引擎。

另一种方法是使用\ifxetex{\rotatebox{-90}{--}}受影响的数字 - 这并不优雅,也可能不是面向未来的,假设 xelatex 将在某个时候得到修复..

或者有谁有更好的解决方案?

答案3

如果您正在使用 R,那么您可能setEPS()之前忘记了postscript('...')

我遇到了完全相同的问题。

答案4

我敢打赌你正在创建 EPS gnuplot,如果是的话,使用

set terminal postscript enhanced eps

并且您的 EPS 和转换文件包含在文档中时将具有正确的方向。

(来源:http://mathewpeet.org/howto/rotate-postscript/

相关内容