Как внедрять шрифты в PDF файлы, созданные matplotlib?

Я использую шрифт, называемый шрифтом ttf под названием FreeSans на linux с matplotlib. Я создаю свою фигуру как:

from matplotlib import rc
plt.rcParams['ps.useafm'] = True
rc('font',**{'family':'sans-serif','sans-serif':['FreeSans']})
plt.rcParams['pdf.fonttype'] = 42
plt.figure()
# plot figure...
plt.savefig("myfig.pdf")

Когда я открываю его в другой программе (например, иллюстратор в Mac OS X), шрифт не появляется и вместо этого используется шрифт по умолчанию, поскольку FreeSans недоступен.

Как я могу сделать так, чтобы matplotlib вставлял шрифт в каждый PDF файл, который он создает? Я не против, если файл больше. Спасибо.

Ответ 1

У меня такая же проблема при создании pdf с matplotlib.

Интересно, если я укажу, используя TrueType в pdf, шрифт будет встроен:

matplotlib.rc('pdf', fonttype=42)

Ответ 2

Вы уверены, что это уже не делает? На веб-сайте:

matplotlib имеет отличную текстовую поддержку, включая математическую выражения, поддержка truetype для растровых и векторных выходов, newline разделенный текст с произвольными вращениями и поддержка юникода. Потому как мы вставляем шрифты непосредственно в выходные документы, например, для postscript или PDF, то, что вы видите на экране, - это то, что вы получаете в печатном виде.

В тот же день я использовал вывод документа .ps и использовал ps2pdf с опцией -dEmbedAllFonts=true.