Ответ 1
Я использую R2015b на моей Linux-машине, но при печати имею те же проблемы.
Все строки, показанные на графике, передаются интерпретатору до, которые передаются визуализатору. Для интерпретатора 'tex' (default)
, 'latex'
и 'none'
есть три режима.
Изменение шрифтов
Интерпретатор TeX/LaTeX не будет проверять шрифты вашей ОС, но приносит сюда свой собственный набор шрифтов для отображения:
- Windows:
C:\Program Files\MATLAB\<version>\sys\fonts\ttf\cm
- Linux:
<MATLAB root>\<version>\sys\fonts\ttf\cm
Для меня у меня есть первая часть коллекции шрифтов BaKoMa (согласно моему readme). Доступны следующие шрифты (для меня):
============================ Basic text fonts ==========================
cmr 5 6 7 8 9 10 12 17
cmbx 5 6 7 8 9 10 12
cmti 7 8 9 10 12
cmsl 8 9 10 12
cmcsc 8* 9* 10
cmtex 8 9 10
cmb 10
cmbxsl 10
cmbxti 10
где cm = computer modern
(из того, что я могу сказать).
Итак, даже если вы скажете Matlab, чтобы построить его в Helvetica, Matlab передает его TeX, и TeX не знает, что такое Helvetica, и вместо этого использует вместо него свой шрифт по умолчанию. Можно было подумать о том, чтобы добавить helvetica вручную, но я не исследовал это дальше.
Работа с (раздражающими) пространствами
Чтобы удалить пробелы в ylabel
, вы можете передать латексную строку. Для этого изменения
ylabel('Space-bugs (\mum^2) (µm²) (µm^2)')
к
ylabel('Space-bugs ($\mu m^2$) ($\mu m^2$) ($\mu m^2$)','interpreter','latex');
Однако это будет использовать шрифт cmr
(современный компьютер), а не Helvetica, но удалите ошибку пространства.
Чтобы избежать сочетания шрифтов на графике, интерпретатор всех текстовых полей можно изменить на latex
. Если у вас нет шрифта computer modern
, доступного для вашей ОС, в этом случае вы можете просто установить соответствующий тип шрифта в matlab.