Matlab 2015a вставляет пространство перед μ в длинные строки, но не в короткие (xlabel). В некоторых случаях можно обойтись, используя буквы UTF-8, но это не удастся в других ситуациях (см. ^ 2)
Шрифт текста должен быть Helvetica
, но он выглядит иначе. Хотя get Fontname
возвращает Helvetica
.
Это ошибка в MATLAB и уже сообщается. Я не хочу ждать несколько месяцев, пока MATHWORKS не исправит эту ошибку.
Как я могу исправить эту ошибку? Я попытался изменить рендеринга на opengl
, но это еще хуже смешает все шрифты.
plot([2014 2015 2016], [0 1 0])
xlabel('MATLAB (\mu)')
ylabel('Space-bugs (\mum^2) (µm²) (µm^2)')
title('Number of wrong spaces in MATLAB')
textTT = text(2015-1, 1/2,'ugliest plot bugs ever', 'FontSize', 20, 'FontName', 'Helvetica');
text(2015, 1/3, get(textTT, 'Fontname')) % says Helvetica, but lies.
print -depsc2 -r864 -painters '/tmp/test.eps'
print -dpdf -r864 -painters '/tmp/test.pdf'
код, отображаемый в Matlab 2015a на Linux 64 бит
тот же код, отображаемый в Matlab Windows 64 Bit by Luis Mendo:
РЕДАКТИРОВАТЬ 1: ошибка все еще присутствует в 2015b и 2016a. Ошибка появляется в версии Linux, но не в версии Windows.
EDIT 2: Некоторые предложили использовать внутренний латексный интерпретатор. Я думаю, что это не решение, потому что это делает код очень трудным для чтения, если все шрифты заменяются на наклонный (или курсивный) компьютер современный. Должен быть один шрифт для сюжета, а единицы, название и ярлыки должны быть написаны вертикально.
РЕДАКТИРОВАТЬ 3: ошибка все еще присутствует в 2017b.