从Matlab发布到Latex

时间:2013-02-21 13:42:16

标签: matlab latex publish

在从Matlab生成Latex输出时,我使用了以下内容 命令窗口:

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

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

如何直接从Matlab改变乳胶中的图形宽度?

1 个答案:

答案 0 :(得分:2)

看起来maxWidth选项仅影响像素图像,如png,bmp等。它会影响实际图像大小,因此将maxWidth设置为3,您将获得最大3像素宽度的图像。它不受格式本身的控制,如html或latex中的width参数。 PUBLISH函数使用XML作为中间格式,我相信这是当前XML模式设计的问题。

使用乳胶格式默认情况下,PUBLISH使用epsc2打印驱动程序并以EPS格式生成矢量图像。所以maxWidth被忽略了。如果您在发布调用中使用...'imageFormat','png',...,则会注意到输出png文件的大小根据maxWidth更改。无论如何,tex文档中图像的大小将是4in(在maxWidth低的情况下图像分辨率很差),如乳胶的默认样式表中所设置的那样。

看起来在PUBLISH中无法更改此行为。

您可以修改xml样式表(matlabroot / toolbox / matlab / codetools / private / mxdoom2latex.xls)。

检查这些行:

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

复制此文件,使用stylesheet选项修改并指定新文件。

或者只是更改输出.tex文件中的width参数。