6

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

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

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

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

4

1 回答 1

2

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

使用乳胶格式 PUBLISH 默认使用 epsc2 打印驱动程序并生成 EPS 格式的矢量图像。所以 maxWidth 被简单地忽略了。如果您...'imageFormat','png',...在发布调用中使用,您会注意到输出 png 文件的大小根据maxWidth. 无论如何,tex 文档中图像的大小将为 4 英寸(在低 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 文件中的宽度参数。

于 2013-02-21T18:14:46.403 回答