Matlab - 乳胶格式间距
Matlab - latex format spacing
我正在创造这样的传奇,
theta = [90 120 80 120];
phi = [120 120 180 180];
for i=1:length(theta)
plot_legend{i} = sprintf('\theta=%3d\circ\phi=%3d\circ',theta(i),phi(i))
end
这给了我想要的输出
plot_legend =
'\theta= 90\circ\phi=120\circ'
'\theta=120\circ\phi=120\circ'
'\theta= 80\circ\phi=180\circ'
'\theta=120\circ\phi=180\circ'
但是当 TeX 解释器解释它时,领先的 space 被忽略了,这让我觉得有点烦人。有没有简单的 TeX 方法来确保保持间距?
但是通过图例调用时间距不保持。
legend(plot_legend,'interpreter','latex')
这是用 LaTeX 解释的空格替换第一个填充零的通用解决方案:
% --- Definition
theta = [5 120 80 120];
phi = [120 120 180 180];
% --- The function handle that does the job
f = @(x, n) regexprep(num2str(x, ['%0' num2str(n) 'i']), '^(0+)', '${repmat(''\hspace{0.5em}'', [1 numel([=10=])])}');
% --- Create a plot and the legend
hold on
for i = 1:length(theta)
% Fake curve
ezplot(['x^' num2str(i)]);
plot_legend{i} = ['$\theta=' f(theta(i),3) '^\circ,\ \phi=' f(phi(i),3) '^\circ$'];
end
legend(plot_legend, 'interpreter', 'latex')
结果:
您可以使用函数句柄的第二个参数指定数字的长度。请注意,这仅适用于整数值。
最佳,
我正在创造这样的传奇,
theta = [90 120 80 120];
phi = [120 120 180 180];
for i=1:length(theta)
plot_legend{i} = sprintf('\theta=%3d\circ\phi=%3d\circ',theta(i),phi(i))
end
这给了我想要的输出
plot_legend =
'\theta= 90\circ\phi=120\circ'
'\theta=120\circ\phi=120\circ'
'\theta= 80\circ\phi=180\circ'
'\theta=120\circ\phi=180\circ'
但是当 TeX 解释器解释它时,领先的 space 被忽略了,这让我觉得有点烦人。有没有简单的 TeX 方法来确保保持间距?
但是通过图例调用时间距不保持。
legend(plot_legend,'interpreter','latex')
这是用 LaTeX 解释的空格替换第一个填充零的通用解决方案:
% --- Definition
theta = [5 120 80 120];
phi = [120 120 180 180];
% --- The function handle that does the job
f = @(x, n) regexprep(num2str(x, ['%0' num2str(n) 'i']), '^(0+)', '${repmat(''\hspace{0.5em}'', [1 numel([=10=])])}');
% --- Create a plot and the legend
hold on
for i = 1:length(theta)
% Fake curve
ezplot(['x^' num2str(i)]);
plot_legend{i} = ['$\theta=' f(theta(i),3) '^\circ,\ \phi=' f(phi(i),3) '^\circ$'];
end
legend(plot_legend, 'interpreter', 'latex')
结果:
您可以使用函数句柄的第二个参数指定数字的长度。请注意,这仅适用于整数值。
最佳,