bug: extra space before greek letter if rendered with painters
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
The following code creates a minimal working example to reproduce the bug in Matlab 2015a on Linux with export_fig 06/03/15 and ghostscript 9.10.
plot([2014 2015 2016], [0 1 0])
xlabel('MATLAB (\mu)')
ylabel('Space-bugs (\mu)')
title('Number of wrong spaces in MATLAB')
export_fig('/tmp/mu_bug_space' ,'-pdf','-png','-eps', '-painters') % bug
export_fig('/tmp/mu_bug_nospace' ,'-pdf','-png','-eps', '-opengl') % OK
Any ideas, where it comes from and how to fix it?
0 comentarios
Respuestas (7)
Christoph
el 7 de Feb. de 2019
To follow up on this:
- I contacted support, as suggested by Ingrid Tigges
- I got a prompt reply:
"Please note that the underlying issue has been fixed as of MATLAB R2017b:
If you are working on Linux systems:
This bug is present in MATLAB R2016a and occurs when saving a figure as a vector graphics file (e.g. EPS, PDF, SVG). A workaround noted in our knowledge database is to use LaTeX as the text interpreter, rather than the default text interpreter (TeX).
Please Note: This forces the use of the default LaTeX font, and also requires LaTeX's dollar sign ($) delimiters to be used when typesetting text.
Use the following command to set the default text interpreter to LaTeX globally.
>> set(groot,'DefaultTextInterpreter','latex');
Alternatively, to set the text interpreter locally for a specific text object, you can set the "Interpreter" property value as in the example below:
f = figure; plot(1:10); xlabel('This is some really really long text string for a label. $C_L$', 'Interpreter', 'latex'); print(f,'-dpdf','image.pdf');
Please Note: At the time of writing, the EBR link below suggests switching the "Renderer" property of a figure to "opengl" as a workaround for this issue. However, this forces a rasterization process to occur, which essentially embeds a bitmap version of the figure within a vector graphics file that is pixelated and does not scale as expected.
The workaround however is quite crappy: Matlab seems to have an agenda to reduce support for LaTeX interpreter, and as of now, only the default font is supported -- which is rarely acceptable if you want to submit the stuff somewhere.
Secondly, the information that the "underlying issue has been fixed as of MATLAB R2017b" is simply wrong. I installed 2018b, and the underlying issue is not fixed at all.
@Aras, can you maybe specify what exactly the "Copy Options" are? I can't find them (using 2018b on a linux machine). Also, is the "print preview" size different from that accessible via
fig.PaperPosition = [];
fig.PaperSize = [];
? And is it possible to control the size you are referring to with code instead of clicking on print preview?
Cheers,
Christoph
1 comentario
Aras
el 7 de Feb. de 2019
I am using MATLAB R2018b on Windows 10 x64.
I cannot reproduce the error by saving the figure as .eps or .pdf using the print function or Save As command.
The problem I have is incorrectly positioned text in a figure when I set its size too big and copy-paste it into Microsoft Office. I attached the sample document where I copied the figure to Word at two different sizes and saved it as PDF for convenience. The large figure has all the text incorrectly positioned. Greek letters are shifted more than standard text, so the "pi" symbol does not appear.
@Christoph :
The properties that I adjust using the Print Preview window are fig.PaperPosition and fig.PaperSize.
Copy Options is a page in MATLAB Preferences where you can find the option to copy the figure (to paste into other programs) either with the size of the figure window or with the size stored in PaperPosition and PaperSize.
Yair Altman
el 1 de Abr. de 2015
Editada: Walter Roberson
el 6 de Mzo. de 2016
I answered this on the Github forum, where all export_fig issues should be discussed (not here).
1 comentario
Christoph
el 29 de Ag. de 2018
I'd love to have this fixed!!! Really annoying, just for this bug I have to open a vector graphics editor.
0 comentarios
Ingrid Tigges
el 29 de Abr. de 2015
There is a workaround for this issue. Due to the disadvantages of the workaround, please contact technical support in order to get the workaround.
2 comentarios
Paul
el 6 de Sept. de 2018
@ingrid Tigges - your answer is not very helpful, can you include the "workaround" in this thread so others can benefit from the "fix"?
Jonas Stein
el 5 de Mzo. de 2016
Update: Unfortunately the bug was not fixed in 2015b and it is still present even in 2016a.
0 comentarios
Aras
el 19 de Sept. de 2018
Editada: Aras
el 19 de Sept. de 2018
I realized that this problem occurs when the size of the figure in Print Preview is large (when "Match figure screen size" is unselected in Copy Options.)
So, a workaround that works for me is to reduce the width, height, line width, and font size by the same ratio in the Print Preview options before copying or exporting the figure.
The workaround in the submitted bug report does not work for me in MATLAB R2018a on Windows 10 when I copy the figure to Microsoft Word or Powerpoint as vector graphics.
0 comentarios
Ver también
Categorías
Más información sobre Labels and Annotations en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!