【问题标题】:PDF output from MATLAB and inclusion in LaTeXMATLAB 的 PDF 输出并包含在 LaTeX 中
【发布时间】:2012-04-28 21:36:14
【问题描述】:

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

但是,当我尝试将它们包含在 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。

这可能与我放入我的startup.m 文件中的set(0,'defaultfigurepaperpositionmode','auto')有关,以便页面自动适应图像?

编辑:我刚刚尝试使用 saveas(figure(1), 'filename.pdf') 而不是 print(figure(1), 'filename.pdf') 并且效果很好,但是 PaperPositionMode 属性被忽略了。有什么办法吗?

【问题讨论】:

    标签: matlab pdf latex


    【解决方案1】:

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

    所以,对于 PDF,我们需要 print(figure(1), '-dpdf', 'myfigure')。有关更多信息,请参阅 MATLAB documentation 了解图形文件格式。

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

    【讨论】:

    • 如果那些可查看但不可包含的 pdf 是有效的 pdf,这将是 pdftex 中的错误。你能把其中一份 pdf 放到网上吗?
    • 怀疑。听起来更像是以另一种格式保存但后缀为 pdf。 mathworks.de/help/techdoc/ref/printopt.html 暗示它可能是 ps2。
    • 这就解释了为什么 Evince 能够打开它。我会在接下来的几天里检查一下。
    • 我遇到了同样的问题,在寻找解决方案的时候发现了这个页面。我发现的问题是我让 Octave 生成​​了一个扩展名为 .pdf 的文件,但它的内容是 eps。在 Linux 中我们可以使用 epstopdf file.eps 将 eps 文件转换为适合包含在 Latex 中的格式很好的 file.pdf 文件。
    【解决方案2】:

    您可以尝试使用 pdf页面

    或 pgf

    包含 pdf 文件。但是,您只需要使用 pdflatex,就像您现在所做的那样。

    【讨论】:

      猜你喜欢
      • 2013-11-30
      • 2011-02-17
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多