Zmiana czcionek figur w Matlab nie ma wpływu
Mam problemy z renderowaniem greckich znaków w moich etykietach i legendach, więc pomyślałem, że może pomoże to przełączanie czcionek. Odkryłem więc jeszcze większy problem - Matlab w ogóle nie uznaje moich ustawień czcionek.
Oczywiście próbowałem
set(gcf, 'FontName', 'Ubuntu')
set(gca, 'FontName', 'Ubuntu')
ale także takie rzeczy
set(findall(gca, 'type', 'text'), 'FontName', 'Ubuntu')
i
set(0,'DefaultAxesFontName', 'Ubuntu')
Próbowałem także przełączać renderery z
set(0, 'DefaultFigureRenderer', 'OpenGL') % also tried 'zbuffer' and 'painters'
Poszedłem nawet do edytora nieruchomości na rysunku i ręcznie zmieniłem czcionki. Niezależnie od tego, co robię, czcionka wychodzi z tą samą, brzydką czcionką o stałej szerokości (patrz rysunek poniżej). Ten obraz jest zapisywany za pomocą polecenia Zapisz jako ... na pasku menu rysunku, ale np.print -dpng 'fonttest.png'
też nie działa.
Sprawdziłem dwukrotniefc-list
w moim terminalu ilistfonts
w wierszu polecenia Matlab, żeUbuntu
czcionka jest zainstalowana i dostępna. Używam Matlab R2012b.
Jak ustawić czcionki w moich figurach?
AKTUALIZACJA:
Jak sugerowano w komentarzach, starałem się sprawdzić, czy to może byćproblem z Javą w Ubuntu. Z pewnością pomogło przełączenie z OpenJDK na Oracle Java, ale nie wystarczy - mogę korzystać z Helvetica i kilku innych, ale nie mogę swobodnie wybierać spośród moich zainstalowanych czcionek. Czcionka Ubuntu, na przykład, nie działa. (Jednak w głównym GUI Matlaba - tam zmieniłem czcionki na Ubuntu w menu itp. Oraz Consolas w edytorze i oknie poleceń, i wyświetla OK.)
Ilekroć wybieram czcionkę figury, która nie działa, Matlab wykorzystuje to, co pokazano na zrzucie ekranu poniżej, jako rezerwowe.
The p
, q
i f
tutaj powinny być greckie litery pi, theta i phi (są one określone przez \pi
itp.), ale myślę, że czcionka nie ma tych znaków. Dziwne rzeczy na etykiecie y trzeciego wykresu to szwedzki ö - nie powinno być problemu z kodowaniem, ponieważ plik jest zapisywany jako UTF-8, co jest również tym slCharacterEncoding
zwraca, więc zakładam, że to także problem z czcionkami.