我正在使用最新的 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 编译它。
我现在第一次遇到这个问题,使用的是 Adobe 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 和转换文件包含在文档中时将具有正确的方向。