在从Matlab生成乳胶输出时,我在
命令窗口:

publish('filename.m',struct('format','latex','showCode',false,  ...
        'maxWidth',3,'outputDir','Desktop'));

生成的乳胶文件的图形宽度始终为4英寸即使我
将maxWidth更改为5、6、1000等,图形宽度保持不变
总是一样的:4英寸。
如何从Matlab直接改变乳胶的图形宽度?

最佳答案

它看起来像maxWidth选项只影响像素图像,如PNG、BMP等。它影响实际图像大小,因此使用最大宽度设置为3,将获得最大3像素宽度的图像。它不受格式本身的控制,比如html或latex中的width参数PUBLISH函数使用XML作为中间格式,我相信这是当前XML schema设计的问题。
默认情况下,使用latex格式发布使用epsc2打印驱动程序并以EPS格式生成矢量图像所以maxWidth被忽略了如果在publish call中使用...'imageFormat','png',...,您会注意到输出png文件的大小根据maxWidth而改变无论如何,tex文档中图像的大小将是4in(在maxWidth较低的情况下,图像分辨率会很差),这是在乳胶的默认样式表中设置的。
似乎无法在发布中更改此行为。
您可以修改xml样式表(matlabroot/toolbox/matlab/codetools/private/mxdoom2latex.xls)。
检查这些行:

<xsl:template match="img">
\includegraphics [width=4in]{<xsl:value-of select="@src"/>}
</xsl:template>

复制此文件,修改并使用stylesheet选项指定新文件。
或者只需更改output.tex文件中的width参数。

07-24 20:40