在 LaTeX 中使用 MATLAB 图像的最佳实践?

在 LaTeX 中使用 MATLAB 图像的最佳实践?

我正在使用 PDFTEX 撰写一篇论文,并且大量使用 MATLAB 图形。

问题是,当我制作 MATLAB 图形时,我可以将其调整为任意大小,然后再保存。保存时,我可以将其保存为 .png、.tiff、.jpg 等。最后,在 LaTeX 上,我也可以调整图像的大小(高度、宽度等)。

所有这些选择都为我的论文提供了各种质量的图像,所以我不知道该怎么做...我是否总是让 MATLAB 图像变大,然后在 LaTeX 中缩小它们?或者在 MATLAB 中将它们缩小,然后在 LaTeX 中将它们展开?有一种图像格式更适合在 PDF 中显示吗?这里的最佳做法是什么?

谢谢。

答案1

我通常的做法是将 MATLAB 图形导出为 .pdf 文件,因为它们很容易被 PDFTEX 识别,并且被渲染为矢量化图像,因此调整大小不会影响质量。以下是一个不错的 MATLAB 扩展,它非常适合将图形导出为 .pdf,而不会出现将图像导出为整个页面的问题:

http://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig

它还有一个很好的文档页面:https://sites.google.com/site/oliverwoodford/software/export_fig

答案2

参加聚会有点晚了,但我已经把很多 MATLAB 图形放在我正在研究的几篇论文中,并已经开发出了一个有效的例程......

确定文本宽度

使用方法这个答案确定\textwidthLaTeX 文档的。您也可以从这里推断打印\textheight

设置 MATLAB 图形宽度

将 MATLAB 图形设置为以下宽度:

set(1, 'units', 'centimeters', 'pos', [0 0 15 10])

括号内为:[x-position y-position width height]。我通常会调整高度值来找到适合我的图表的值,但一个好的经验法则是文本高度的 1/4 到 1/3。

请注意,x-positiony-position并不重要——它们定义了图形相对于左下角在屏幕上出现的位置。

设置 MATLAB 页边距并导出

正如@user3228896提到的,您可以从MATLAB内部控制pdf边距,但不需要扩展。只需在每个图后粘贴以下内容即可:

figure(figNum)
% plot(somestuff);  
pos = get(figNum,'Position');
set(figNum,'PaperPositionMode','Auto','PaperUnits','centimeters','PaperSize',[pos(3), pos(4)])
print(figNum,'myfigure','-dpdf','-r0')

如果您有多个图,请确保设置一个唯一的值,以便myfigure它们不会互相覆盖。

所有这些也可以用英寸来完成。

MATLAB 中绘图标签的 LaTeX 解释器

你可以使用 LaTeX 作为 MATLAB 绘图标签保持变量名称等的一致性。

也可以更改字体系列,但我个人认为默认的 MATLAB 无衬线字体效果很好。

放置图形

插入图形时,您可以使用以下因素稍微调整一下\textwidth

\begin{figure}[!htb]
    \captionsetup{skip=0.5\baselineskip,size=footnotesize}
    \centering
    \includegraphics[width=1.1\textwidth]{Figures/myfigure}
    \caption{This is the caption text}
    \label{fig:myfigure}
\end{figure}

由于您使用的是 pdf,所以稍微向上或向下拉伸不会对质量产生影响,因此我通常只是稍微调整一下,直到看起来正确为止。

答案3

重点是 Matlab 保存图形的分辨率和刻度标记与屏幕上显示的图形不同。在程序的某个阶段,您必须在 Matlab 中将其设置'PaperPositionMode''auto'。这样,Matlab 将以屏幕上显示的大小保存图形。

相关内容