Extra space in saved figure before subscripts or superscripts

28 vues (au cours des 30 derniers jours)
Daniel
Daniel le 25 Mar 2021
Commenté : Daniel le 30 Juil 2021
I have plot axis labels that use subscripts and/or superscripts. The figures look exactly as they should when I plot them in Matlab. When I save them, I get an extra space before the subscript or superscript. WHY???? I've done this lots of times and never had this problem.
I've attached an example. The code for the example label is:
ylabel('PSD [m^2/s]','fontsize',14)
I've also tried putting {} around the 2, but it doesn't change anything. I can add latex as the interpreter, but then the font changes and I want the default font.
UPDATE: I just noticed that there's more space before or after any latex text. I used a \times in another label and there's more space before it, but some subscripts have a little space after them. I'm not sure if there's a pattern to this.
  6 commentaires
Robert U
Robert U le 12 Avr 2021
Hi Daniel,
I cannot reproduce the described issue, using your example.
fh = figure;
ah = axes;
plot(ah,rand(size(1,10)),rand(size(1,10)))
xlabel(ah,'here is super^{script} to see')
ylabel(ah,'here is sub_{script} to see')
saveas(fh,'test_saveas.eps','epsc')
print(fh,'test_print','-deps')
Kind regards,
Robert
Daniel
Daniel le 12 Avr 2021
Robert,
Thanks for trying again. I don't know what to say. Only difference I can see is that I don't typically save my figures or axes as variables and refer to them within other commands, but I can't see why that would matter. I'll play around with it a bit more to see if I can pinpoint anything, but for now I'm stumped.

Connectez-vous pour commenter.

Réponses (2)

Enrico Camporeale
Enrico Camporeale le 12 Mai 2021
Try changing the intepreter to latex and put the symbol with super/subscripts within $$
  1 commentaire
Daniel
Daniel le 12 Mai 2021
I mentioned above that the problem is "solved" with Latex as the interpreter, but then the font changes and there is no Latex font that matches the default font and I want the default font.

Connectez-vous pour commenter.


Andrea Bonfanti
Andrea Bonfanti le 30 Juil 2021
Modifié(e) : Andrea Bonfanti le 30 Juil 2021
Dear Daniel,
I'm using Octave 4.2.2 for Linux and have faced the same issue, but apparently just from time to time, hence the difficulty to understand the reason.
Now I've found the bug: If you want to add subscripts/superscripts to a given word (say w_s), then every word before w_s must have a subscript/superscript as well to avoid the extra blank in w_s. Looking at your example, a workaround to fix the issue is:
ylabel('PSD_{} [m^2/s]','fontsize',14)
where you create a fictitious subscript to PSD.
Hope this helps,
Andrea
  1 commentaire
Daniel
Daniel le 30 Juil 2021
Here are my results. I don't think this fixed it. If anything, I think I see more space after "here" and "is" because of the added "_{}" on each. Glad it works in Octave. In the end, I just fixed them all in Inkscape.
Fixed?
On screen:

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by