Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;出版「;至pdf_Pdf_Matlab_Publish - Fatal编程技术网

&引用;出版「;至pdf

&引用;出版「;至pdf,pdf,matlab,publish,Pdf,Matlab,Publish,使用Matlab,我想创建一个pdf文档,总结几个实验的结果。理想情况下,每个实验我会有一页,有两个多面板图和一点文本 我认为publish.m将是一个不错的选择,但是,发布到pdf不支持插入分页符,我既不能控制图形质量(这相当糟糕),也不能控制图形大小(这意味着两个图形占据整个页面),也不能将文本填充到页眉/页脚中 除此之外,我如何在Matlab中创建一个对布局有一定控制的多页pdf?MathWorks做了一个可以让您对输出进行风格化的设计-基本上,它是一个更为奇特的publish函数版本。有

使用Matlab,我想创建一个pdf文档,总结几个实验的结果。理想情况下,每个实验我会有一页,有两个多面板图和一点文本

我认为
publish.m
将是一个不错的选择,但是,发布到pdf不支持插入分页符,我既不能控制图形质量(这相当糟糕),也不能控制图形大小(这意味着两个图形占据整个页面),也不能将文本填充到页眉/页脚中


除此之外,我如何在Matlab中创建一个对布局有一定控制的多页pdf?

MathWorks做了一个可以让您对输出进行风格化的设计-基本上,它是一个更为奇特的
publish
函数版本。

有Matlab Report Generator工具箱,可以很容易地实现这一点。 当然要花点钱

您可以尝试从Matlab编写一些标记文本,然后使用其他工具将其转换为PDF。可能的转换器:

  • 写出LaTeX,然后使用PdfLaTeX生成PDF
  • 写出StructuredText,然后使用Python文档生成PDF
  • 写出DocBookXML,然后使用任何DocBook到PDF转换器
  • 写出HTML,然后用浏览器或OpenOffice将其打印为PDF
如果您不想这样做,请查看Matlab文档。
您可以为已发布的图形指定图像大小/分辨率,我认为存在插入换行符的可能性。

如果您真的想控制pdf生成,请查看--您可以从MATLAB非常轻松地使用Java库。

最后我使用了LaTeX,因为它提供的文档质量比我通过HTML时要高很多

不幸的是,publish.m即使在向LaTeX发布时也相当有限。例如,如果在一个循环中添加多个图形,则无法设置分页符,调整图形大小以在一个页面上精确获得N个图形是非常困难的

因此,我编写了一个函数来直接编写LaTeX文件(使用文件交换中的export_fig来保存图形),并编写了另一个函数来编译为pdf。
通过这种方式,我可以轻松生成LaTeX文件,并且我在格式化方面有很大的能力。

如上所述,LaTeX是。如果您发布了方程式,您最终会发现这对于良好的输出是必要的。一旦走上这条路,下面的标记就可以很好地工作。然后我使用TexWorks将LaTeX转换为pdf。一个附带的好处(也是我走这条路的真正原因)是得到比内置pdf转换器更好看的方程。下载和安装花了一两个小时,而我正在做其他事情,它运行速度比直接使用pdf时快了一点

%% 
% <latex>
% \clearpage
% </latex>
%%
% 
%\clearpage
% 
旁注:在Matlab2012b中,每个新方程都出现了一些我不记得的错误(方程出现了,我只是有一个错误)。当我切换到LaTeX时,这就停止了,但我需要在Matlab中指定一个偏好文件,插入这些行以获得我想要的所有等式功能

\usepackage{amsmath}

\usepackage{amssymb}

我对LaTeX或TeXworks了解不够,无法了解这些软件包在发布到pdfLaTeX+MakeIndex+BibTeX时默认使用的TeXworks中添加了哪些功能

  • 下面是一个示例.m文件,其中包含要发布的循环中的绘图:

    x = -5 : 5
    for i=1:3
      plot(x, x .^ i );
      snapnow;
      disp('<latex>\clearpage</latex>')
    end
    
    并将其复制到example.m文件旁边,例如,作为custom_mxdom2latex.xsl

  • 在自定义.xsl文件中查找以下破坏输出顺序的有害行:

    <xsl:apply-templates select="text"/>
    <xsl:apply-templates select="mcode"/>
    <xsl:apply-templates select="img"/>
    <xsl:apply-templates select="mcodeoutput"/>
    
    你完成了:)


  • 是的,没有记录,很遗憾。

    谢谢你的建议。当然,报表生成器工具箱恰好是我无法访问的工具箱之一。不幸的是,正如我在问题中提到的,无法指定要发布到pdf的图像大小/分辨率和换行符(查看Matlab文档和服务请求证实了这一点)。我想学习足够多的LaTeX来制作一个漂亮的文档,或者使用发布到HTML来快速制作一些东西,这两者之间是一个折衷的选择。在M-File注释中使用预格式化文本(单元格>插入文本标记>预格式化文本)怎么样?它支持换行。为了能够定义图像大小,首先使用
    print-dpng
    命令(请参见
    help print
    )创建一个单独的图像文件,然后将生成的文件包含在已发布的M文件中()。你可以指定选项来定义打印图像的大小。对不起,我指的是“分页符”,而不是“换行符”。该死,我刚刚被扔到MATLAB,在我与R/Swave的正面体验之后,它的报告看起来很糟糕。。。
    <xsl:apply-templates select="text"/>
    <xsl:apply-templates select="mcode"/>
    <xsl:apply-templates select="img"/>
    <xsl:apply-templates select="mcodeoutput"/>
    
    <xsl:apply-templates select="text|mcode|img|mcodeoutput"/>
    
    opts.format='latex';opts.stylesheet='custom_mxdom2latex.xsl'
    publish('example', opts)