How do I center a double-lined diagram title, interpreted as LaTex?

18 ビュー (過去 30 日間)
Ulrik William Nash
Ulrik William Nash 2017 年 9 月 27 日
回答済み: noahop 2018 年 4 月 5 日
Why does the following not center the first line of the double-lined diagram title?
str_title = {'Line 1';'Line 2'}; title(str_title,'interpreter','latex','HorizontalAlignment', 'center');
  1 件のコメント
Robert U
Robert U 2017 年 9 月 28 日
Hi Ulrik William Nash:
Please, provide a figure of your result. It is not possible to reproduce what you describe.
Varying the 'HorizontalAlignment'-property leads to different positions of the title strings as expected:
str_title = {'Line 1';'Line 2'};
fh = figure;
ah = axes;
title(ah,str_title,'interpreter','latex',...
'HorizontalAlignment', 'center');
hold on
bh = axes;
title(bh,str_title,'interpreter','latex',...
'HorizontalAlignment', 'left', 'color', 'green');
ch = axes;
title(ch,str_title,'interpreter','latex',...
'HorizontalAlignment', 'right', 'color', 'blue');
Kind regards,
Robert

サインインしてコメントする。

回答 (2 件)

Benjamin Getraer
Benjamin Getraer 2018 年 1 月 3 日
編集済み: Benjamin Getraer 2018 年 1 月 4 日
The LaTex interpreter will automatically left-align the text block, and the 'horizontalalignment' argument will align the entire block instead of each line individually. The alignment has to be set INSIDE of the LaTex environment.
I found a solution HERE that uses the LaTex tabular environment.
An example of the problem:
An example of the solution using the tabular environment:
The code looks like this:
title('\begin{tabular}{c} The first line \\ Followed by another line \end{tabular}',...
'interpreter','latex')
For readability it could be translated to sprintf() format like this:
title_text = 'The first line \\ Followed by another line';
title(sprintf('\\begin{tabular}{c} %s \\end{tabular}',title_text),...
'interpreter','latex')
Or broken down like this:
line1 = 'The first line';
line2 = 'Followed by another line';
title(sprintf('\\begin{tabular}{c} %s %s %s \\end{tabular}',line1,'\\',line2),...
'interpreter','latex')
I think that breaking it down like this last example is the most clear, especially if the code for the text is especially long.
NOTE: other alignments can be achieved as well:
Centered
\begin{tabular}{c}
Right aligned
\begin{tabular}{r}
Left aligned
\begin{tabular}{l}

noahop
noahop 2018 年 4 月 5 日
I had to add two \\ commands in a row (between the two lines) to get this to work on Matlab R2017a.
So for me it became:
"\\begin{tabular}{c} %s \\\\ %s \\end{tabular}"

カテゴリ

Help Center および File ExchangeGraphics Object Properties についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by