【发布时间】:2023-03-06 04:16:01
【问题描述】:
我在 MATLAB 中制作了一些图形,并尝试将它们插入到 LaTeX 中。但是,当我这样做时,它们通常没有相同的大小(尽管我使用相同的设置来制作它们)。
例如:
我目前使用的MATLAB代码就是这个
lsize = 16; % Label fontsize
nsize = 16; % Axis fontsize
q=randn(100,1000);
a1=linspace(1,1000,1000);
b1=linspace(2,2000,1000);
figure (1)
histogram(q)
xlabel('Time [sec]','Fontsize', lsize)
ylabel('W_{kin} [keV]','Fontsize', lsize)
set(gca, 'Fontsize', nsize)
set(gcf,'paperpositionmode','auto');
set(gcf,'windowstyle','normal');
set(gca,'LooseInset',max(get(gca,'TightInset'), 0.02))
set(gca,'fontweight','normal')
opts.Colors = get(groot,'defaultAxesColorOrder');
opts.saveFolder = 'img/';
opts.width = 12;
opts.height = 10;
opts.fontType = 'Times';
saveas(gcf,'f1.png')
figure(2)
loglog(a1,b1)
xlabel('time [sec]','Fontsize', lsize)
ylabel('Speed [m/sec]','Fontsize', lsize)
set(gca, 'Fontsize', nsize)
set(gcf,'paperpositionmode','auto');
set(gcf,'windowstyle','normal');
set(gca,'LooseInset',max(get(gca,'TightInset'), 0.02))
set(gca,'fontweight','normal')
opts.Colors = get(groot,'defaultAxesColorOrder');
opts.saveFolder = 'img/';
opts.width = 12;
opts.height = 10;
opts.fontType = 'Times';
saveas(gcf,'f2.png')
我使用的乳胶代码是:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx} % needed for figures
\begin{document}
\begin{figure}[!ht]
\begin{center}
\includegraphics[width=0.3\textwidth]{f2.png}\\
\includegraphics[width=0.3\textwidth]{f1.png}
\caption {A caption}\label{A_label}
\end{center}
\end{figure}
\end{document}
我是不是做错了什么?
【问题讨论】:
-
不相关的旁注:
get/set已通过使用句柄被图形引擎大修取代,例如fig = figure(),line_handle = plot()等。减少混乱的代码,你可以这样做fig.windowstyle = 'normal'。对于子图,您可能还想看看tiledlayout,它或多或少取代了subplot,并且有更多的设计控制选项。 -
对于 LaTeX 文档,我建议使用矢量图形文件,例如 eps 或 pdf。要对 MATLAB 方面与图形相关的所有内容进行高级控制,我建议您查看 File Exchange 上的
export_fig()。 -
@Adriaan 我以前看过这个文件,但我无法使用它?出于我的目的,您能否详细说明其中包含的哪些功能有用?
-
它或多或少是一个工具箱。
export_fig.m是主要功能。这在它的帮助和 FEX 上有足够的文档。 -
与您的问题无关,但我建议不要在图中使用
center环境。相反,可以使用\centering。这将避免中心的额外垂直空间
标签: matlab plot latex matlab-figure figure