Как я могу напечатать рисунок в PDF-файл со встроенными греческими буквами или формулами в MATLAB? - PullRequest
0 голосов
/ 05 ноября 2018

Я не могу найти решение для печати фигуры со встроенными греческими буквами, используя функцию печати (или функцию обмена файлами export_fig () из Yair Altman).

Хотя эта функция была доступна в более ранних выпусках Matlab (например, R2016a), следующий код не дает желаемого результата с версией R2018a:

figure()
rng = 0:0.01:2;
plot(rng, sin(rng.*pi()))
text(1, 0.6, 'sin of {\alpha}')
print('simple_test_p', '-dpdf')
% export_fig('simple_test_e','-pdf', '-transparent')

enter image description here

В то время как текст перед '{\ alpha}' встроен в полученный PDF-файл, сама альфа представляется изображением, а не встроенным шрифтом (см. Изображение).

Я пробовал несколько разных шрифтов, чтобы исключить возможность отсутствия шрифта по умолчанию (кроме двойной проверки папки шрифтов). Более того, я использовал как латексные, так и текстовые переводчики. Тем не менее, ни одна из этих процедур не сработала.

Если эта проблема не может быть решена с помощью Matlab, есть ли другой способ получить pdf-файл со встроенными греческими буквами и математическими формулами?

Я очень ценю вашу помощь. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Или просто используйте matplotlib, который хорошо уживается с юникодом:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10000)
y = np.sin(np.pi * x * 0.001) 
plt.plot(x, y)
plt.ylabel(u"\u03B1")
plt.xlabel('β')
plt.savefig(r'<insert your path here>/sinewave.pdf')
plt.show()
0 голосов
/ 06 ноября 2018

MATLAB везде использует текст Unicode. Вы должны быть в состоянии просто сделать:

text(1, 0.6, 'sin of ?')

Если вы не можете ввести греческие буквы, вы всегда можете найти их в Google * и скопировать и вставить их. Я нашел выше здесь .

* или любой другой ваш любимый поисковик.

...