LINUX.ORG.RU

Как настроить MATLAB для корректного отображения Русских (Кириллических) символов на фигурах и графиках под Linux?

 , , , ,


0

1

Здравствуйте!

Установил MATLAB R2008b под Ubuntu 12.04.5 LTS и Windows XP (в VirtualBox).
Системная локаль под Ubuntu - Unicode (en_US.UTF-8).

Для совместимости с Windows я запускаю MATLAB в Ubuntu с локалью ru_RU.CP1251 - создал простой скрипт для запуска MATLAB:

 cat /opt/MATLAB_R2008b/bin/matlab-run
 #!/bin/bash
 export LANG="ru_RU.CP1251";
 export LC_ALL="ru_RU.CP1251";
 /opt/MATLAB_R2008b/bin/matlab -desktop
После этого slCharacterEncoding и feature('DefaultCharacterSet') возвращают ожидаемое значение windows-1251.

В моей системе много шрифтов, большинство из которых поддерживает Русские (Кириллические) глифы. Те шрифты, про которые говорится в Arch Wiki стоят точно (это пакеты xfonts-100dpi, xfonts-75dpi).
Русский текст отображается нормально в uicontrol (см. скриншот):

uicontrol('String','Русский=Russian','Position',[0 0 200 200])

Однако не отображается нормально в названии графика (title) и в подписях осей (xlabel, ylabel) - см. скриншот:

 x = linspace(0,2*pi,100); y = sin(x);
 xlabel('x, в радианах','interpreter','none');
 ylabel('y, значение sin(x)','interpreter','none');
 title('y, значение sin(x)','interpreter','none');

Не понимаю, как это исправить. На StackOverflow ответа пока тоже нет. Многократное гугление не помогло.
Установка пакетов с шрифтами Type1 (cm-super, t1-cyrillic, t1-teams) не помогает.

Как еще я должен настроить MATLAB или систему для корректного отображения Русских (Кириллических) символов на фигурах в Linux?

Насколько помню под linux стоит использовать всё-таки unicode. Да и зачем целый matlab для графиков?

dinn ★★★★★ ()
Ответ на: комментарий от dinn

Спасибо за ответ.

Не только для графиков. Это просто пример, демонстрирующий проблему. Под UTF-8 работает чуть лучше. Но как я уже писал, нужна совместимость с Windows, поскольку часть команды работает по Windows. А каждый раз iconv запускать мало радости.

Scilab'ом, wxMaxima и Gnuplot я тоже активно пользуюсь.

nrbrtx ()
Ответ на: комментарий от nrbrtx

Если так нужна совместимость, то скорее всего придётся не обращать внимания на подписи на графиках, или перейти на английские подписи.

dinn ★★★★★ ()
Ответ на: комментарий от dinn

Уже делаю похожим образом - в Linux английские подписи, в Windows русские. Но хотелось бы иметь везде русские.

nrbrtx ()
Ответ на: комментарий от nrbrtx

Перфекционизм в отношении matlab до хорошего не доведёт. Да и всё равно красивые подписи нужны только для подготовки печатного варианта, а его всё равно лучше не в matlab делать. Хотя может в новых версиях графики и получше выглядят.

dinn ★★★★★ ()
Ответ на: комментарий от dinn

Пока поборолся скопировав файлы шрифтов из Windows, положил их в /usr/local/fonts/truetype, запустил там mkfontscale и mkfontdir, теперь под Linux у меня есть нормально отображающийся русский шрифт Tahoma GUAP (похоже от Microcap 8 GUAP Edition).

Получается, что проблема была в особом формате ttf-файла шрифта (он должен поддерживать CP/Windows-1251).

Оставлю здесь список шрифтов, которые нормально отображаются при кодировке UTF-8:

  • clean
  • free avant garde
  • free bookman
  • free chancery
  • free courier
  • free helvetian
  • free paladin
  • free schoolbook
  • free times
  • oldslavic
  • tahoma guap
  • teams
  • terminus

Спасибо за помощь!

nrbrtx ()
Ответ на: комментарий от nrbrtx

Если тебя это успокоит, в 2014a и макоси тоже знаки вопросов вместо подписей. Но ведь это же матлаб, чего ты ожидал :)

ptarh ★★★★★ ()
Ответ на: комментарий от ptarh

Похоже они так прикалываются. Посмотрел я, значит, шрифт который подошел, а он работает оказывается только из-за того, что в нем нет секции 1251.

cat /usr/local/fonts/truetype/fonts.dir

tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-adobe-standard
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-ascii-0
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso10646-1
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-1
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-10
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-11
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-13
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-15
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-16
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-2
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-3
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-4
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-5
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-8
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-iso8859-9
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-koi8-e
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-koi8-r
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-koi8-ru
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-koi8-u
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-koi8-uni
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-microsoft-cp1252
tahoma-g.ttf -microsoft-tahoma guap-medium-r-normal--0-0-0-0-p-0-tis620-2

Когда-то я где-то уже читал, что кириллицу матлаб хранит ISO-8859-5.

Дааа, этот матлаб полон чудес.

nrbrtx ()
Ответ на: комментарий от ptarh

кстати, а они там уже починили отображение знака «минус» с теховским интерпретатором?

demidrol ★★★★★ ()
Ответ на: комментарий от nrbrtx

Матлаб начинался как связка костылей, и с тех пор ничего особо не изменилось. Только IDE вылизали и документацию, язык как был говно-говном, так и остался :) Такие дела...

ptarh ★★★★★ ()
Ответ на: комментарий от demidrol

Не знаю, я стараюсь поменьше использовать этот чудесный продукт, и если бы слоупоки в R довели до ума хоть где визуальный дебаггер(я в курсе про RStudio, но она работает через пень-колоду и часто просто вешает процесс), то я бы лучше писал в 3 раза больше кода и конвертировал данные в нужый вид скриптами, чем матюкаясь вправлял мозги этому чуду программерской мысли. :) К сожалению, для одноразовых вещей, а большая часть анализа данных именно из них, он все еще самый выгодный вариант по времени.

ptarh ★★★★★ ()
Ответ на: комментарий от ptarh

язык как был говно-говном, так и остался

Ну если изначально это был эдакий интерпретируемый фортран с множеством удобств, то сейчас они туда чего только не засунули, сохраняя обратную совместимость. Хотя мне и не доводилось в далёкие дебри лезть. Вообще сейчас julialang пиарят, но когда ещё оно стабилизируется и обрастёт достаточным количеством модулей...

dinn ★★★★★ ()

Хммм... Не знал, что матлаб под линукс есть. Всё как-то максимой пользуюсь....

slamd64 ★★★★★ ()

Не тронь какаху

Свободное сообщество дало им matplotlib с полной поддержкой юникода - пользуйся! Не хотим, хотим жрать говно.

anonymous ()

winMATLAB+Wine.

Почти вся проприетарщина так работает лучше, чем в якобы «нативном» варианте. Увы.

prischeyadro ★★★☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.