MATLAB的PDF输出和LaTeX中的包含

MATLAB的PDF输出和LaTeX中的包含,matlab,pdf,latex,Matlab,Pdf,Latex,我正在以PDF格式在MATLAB中打印一些图形,并且可以在Fedora16上使用Evince PDF viewer很好地查看它们 然而,当我试图在LaTeX(TeXLive 2011)中包含它们时,我得到了一个错误 !pdfTeX error: /usr/local/texlive/2011/bin/x86_64-linux/pdflatex (file ./caroti d_amp_mod_log.pdf): xpdf: reading PDF image failed 但是,我可以拿Mat

我正在以PDF格式在MATLAB中打印一些图形,并且可以在Fedora16上使用Evince PDF viewer很好地查看它们

然而,当我试图在LaTeX(TeXLive 2011)中包含它们时,我得到了一个错误

!pdfTeX error: /usr/local/texlive/2011/bin/x86_64-linux/pdflatex (file ./caroti
d_amp_mod_log.pdf): xpdf: reading PDF image failed
但是,我可以拿Mathematica中生成的PDF图像为例,将其很好地包含在内,这告诉我问题在于MATLAB生成的PDF,而不是一般的PDF

它可能与
设置有关(0,'defaultfigurepaperpositionmode','auto')
我将
startup.m
文件放入,以便页面自动适应图像


EDIT:我刚刚尝试使用
saveas(图(1),'filename.pdf')
而不是
print(图(1),'filename.pdf')
,效果很好,但是忽略了
PaperPositionMode
属性。有没有办法解决这个问题?

终于找到了问题所在。打印图像的正确方法是使用
打印(句柄,'-dformat',filename')
语法

因此,对于PDF,我们需要
打印(图(1),'-dpdf',myfigure')
。有关更多信息,请参见图形文件格式上的MATLAB

使用
print(图(1),'filename.pdf')
仍然可以生成有效的pdf供查看,但不能包含在LaTeX中

您可以尝试使用 pdfpages

或 pgf


包括pdf文件。但是,正如您现在所做的那样,您只需要使用pdflatex。

如果那些可查看但不可包含的PDF是有效的PDF,这将是pdftex中的一个错误。你能把这些PDF放在网上吗?我怀疑。听起来更像是以另一种格式保存的,但后缀为pdf。表明可能是ps2。这就解释了为什么Evence能够打开它。我将在未来几天的某个时候查看它。我在搜索解决方案时遇到了相同的问题并找到了此页面。我发现的问题是,我让Octave生成了一个扩展名为.pdf的文件,但它的内容是eps。在Linux中,我们可以使用epstopdf file.eps将eps文件转换为适合包含在latex中的格式良好的file.pdf文件。