MATLAB多行标题中的LaTeX

6

我需要在MATLAB绘图中创建一个两行标题,每一行都使用LaTeX。

title({'first line','second line'})

该方法在MATLAB中可行,但不支持LaTeX。在单行MATLAB标题中,LaTeX格式应按照以下示例进行理解:

title(['$y=x^2$'],'interpreter','latex')

我尝试了很多方法,但我无法让MATLAB在这些行中使用LaTeX生成多行标题。

3个回答

7

如果您运行

title({'$y=x^2$','$y=x^2$'},'interpreter','latex')

您将获得一个正确的LaTeX格式化的两行标题。

也许您试图执行一些格式不正确的LaTeX格式?如果仍然遇到问题,请尝试发布失败的实际LaTeX命令。此外,请发布您正在使用的MATLAB版本。 - gariepy
是的,比其他解决方案更加简洁。干得好。 - rayryeng
这个被接受的答案允许用户选择文本对齐方式(在他的示例中是中心对齐),而上面的答案则不行。使用单元格数组会强制(通常不想要的)左对齐。这很可能是一个 bug。 - Lucubrator
在R2020b中,使用单元数组会使用居中对齐。 - MHebes

4

在R2017a版本之前,使用其他答案建议的单元格数组会强制左对齐。这似乎在R2017b中已得到修复。

您可以将标题包装在LaTeX表格环境中:

figure;
plot((1:5).^2);
title('\begin{tabular}{c} first_line \\ second_line \end{tabular}', ...
      'interpreter', 'latex')

这将让您选择文本对齐方式。将{c}替换为{r}{l},分别用于右对齐和左对齐文本。


1
你可以使用sprintf来创建包含换行符'\n'title字符串。
title(sprintf('$y=x^3$\n$sin(x)$'), 'interpreter', 'latex');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接