使用Matlab,我想创建一个总结几个实验结果的pdf文档。理想情况下,我会为每个实验设置一个页面,其中包含2个多面板数字和一些文本。“Publish”to pdf
我认为publish.m
是要走的路,但是,发布到pdf不支持插入分页符,我既不能控制图形质量(这是相当糟糕的),也不是数字大小(这意味着2个数字占据整个页面),我也不能将文本填充到页眉/页脚中。
我怎么能创建一个多页PDF与一些控制从Matlab内的布局?
使用Matlab,我想创建一个总结几个实验结果的pdf文档。理想情况下,我会为每个实验设置一个页面,其中包含2个多面板数字和一些文本。“Publish”to pdf
我认为publish.m
是要走的路,但是,发布到pdf不支持插入分页符,我既不能控制图形质量(这是相当糟糕的),也不是数字大小(这意味着2个数字占据整个页面),我也不能将文本填充到页眉/页脚中。
我怎么能创建一个多页PDF与一些控制从Matlab内的布局?
存在Matlab报告生成器工具箱,它可以很容易地做到这一点。 当然它花了一些钱。
您可以尝试从Matlab写出一些标记文本,然后使用其他工具将其转换为PDF。可能的转换器:
如果你不想要这个,看看Matlab文档。 您可以指定发布图形的图像大小/分辨率,我认为存在插入换行符的可能性。
MathWorks做了一个Report Generator toolbox,它允许你设置你的输出样式 - 基本上它是publish
函数的一个更有趣的版本。
如果你真的想要控制pdf的生成,看看iText Java PDF library - 你可以很容易地从MATLAB使用Java库。
最后,我使用了LaTeX,因为它提供的文档质量远高于通过HTML访问的文档。
不幸的是,即使涉及发布到LaTeX,publish.m也相当有限。例如,如果在循环中添加多个数字,则不可能设置分页符,并且调整图形大小以在页面上精确地显示N个数字是非常困难的。
因此,我写了一个函数来直接编写LaTeX文件(使用export_fig从文件交换中保存数字),另一个编译为pdf。 通过这种方式,我可以轻松生成LaTeX文件,并且在格式化方面我拥有很多功能。
看一看https://github.com/Jubobs/pretty_publish – Jubobs 2014-08-07 16:45:52
对于LaTeX是的,如上所述。如果您发布方程式,您最终会发现对于良好输出而言必要的。一旦你走上了这条路,下面的标记效果很好。然后,我使用TexWorks将LaTeX转换为pdf。一个副作用(以及我走上这条路的真正原因)是要获得比我内置的pdf转换器更好的方程。下载和安装需要一两个小时,而我在做其他事情时,运行速度要比直接阅读pdf时要快一些。
%%
% <latex>
% \clearpage
% </latex>
旁注:一些错误,我不记得了与在Matlab 2012B每个新方程上来(等式出现了,我只是有一个错误)。当我切换到LaTeX时,这停止了,但我需要一个在Matlab中指定的首选项文件,插入这些行以获得我想要的所有等式功能。
\ usepackage {} amsmath
\ usepackage {} amssymb
我不知道有足够的了解乳胶或TEXworks的知道添加到发布到pdfLaTeX当什么TEXworks的默认情况下使用什么样的能力,这些包+ MakeIndex +中文提供
这是一个阴谋文件example.m在循环中被公开:
x = -5 : 5
for i=1:3
plot(x, x .^ i);
snapnow;
disp('<latex>\clearpage</latex>')
end
从MATLAB安装目录
...\toolbox\matlab\codetools\private\mxdom2latex.xsl
采取抽样XSL样式表文件和明年将它复制到你的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"/>
与此更换线路:
<xsl:apply-templates select="text|mcode|img|mcodeoutput"/>
发布:
opts.format='latex';opts.stylesheet='custom_mxdom2latex.xsl'
publish('example', opts)
大功告成:)
附:是的,没有记录,这是一个遗憾。
谢谢您的建议。当然,报表生成器工具箱恰好是我无法访问的那些工具箱之一。 不幸的是,这是不可能发布到PDF指定图像尺寸/分辨率和换行符,因为我在这个问题提到的(看看Matlab的文档和服务请求确认)。 我想这将是学习足够乳胶做出一个很好的文件,或者使用发布到HTML使一些快之间难以取舍。 – Jonas 2010-01-15 18:57:01
在M-File注释中使用预格式化文本(单元格>插入文本标记>预格式化文本)怎么办?它支持换行符。 为了能够定义图像的大小,第一使用'打印-dpng'命令(见'帮助print')来创建一个单独的图像文件,然后在您的发布M-文件生成的文件(<>)。您可以指定选项来定义打印图像的大小。 –
2010-01-15 20:09:49
对不起,我的意思是'分页符',而不是'换行符'。 – Jonas 2010-02-17 03:35:36