2016-02-18 2 views
0

Я хочу, чтобы мои сюжеты установили rcParameter «text.usetex = True» и сохранили его в формате pdf.неправильные шрифты, встроенные в pdf при использовании «text.usetex» = true

Если я установил 'text.usetex = False' и установил шрифт 'Times New Roman' -> только встроенные TimesNewRomanPS-ItalicMT и TimesNewRomanPSMT (см. usetex_false).

Но если я установить 'text.usetex = True' -> вместо времена только см-шрифты (например, CMMI12, cmr10, ...) заделаны (см usetex_true)

Как я могу использовать. 'text.usetex = True' и вставлять Times New Roman шрифты вместо CM-шрифты

Мой код:

""" 
Demo of a line plot on a polar axis. 
""" 
import numpy as np 
import matplotlib.pyplot as plt 

with plt.rc_context({'text.usetex' : False, #---> no Times New Roman embedded when set to true, instead cm-fonts 
        'font.family' : 'serif', 
        'font.serif': 'Times New Roman', 
        'mathtext.fontset' : 'custom', 
        'mathtext.cal' : 'serif:cursive', 
        'mathtext.rm' : 'serif', 
        'mathtext.tt' : 'monospace', 
        'mathtext.it' : 'serif:italic', 
        'mathtext.bf' : 'serif:bold', 
        'mathtext.sf' : 'sans'}): 
    r = np.arange(0, 3.0, 0.01) 
    theta = 2 * np.pi * r 
    r = r*1000000000 
    ax = plt.subplot(111, projection='polar') 
    ax.plot(theta, r, color='b', linewidth=3) 

    ax.grid(True) 

    plt.title(r'Some text with latex in it $10_4 \times \theta = \Phi$') 
    plt.savefig(r'Test_text_embedded_of.pdf', papertype='None') 
+0

Я не могу воспроизвести вашу проблему. Я получаю тот же шрифт, который не зависит от usetex. 'ax.title.get_font_properties()' и 'ax.title.get_fontname()' также идентичны. –

+0

'ax.title.get_font_properties()' и 'ax.title.get_fontname()' для меня тоже являются indentical. Может быть, что-то с бэкэндом? –

ответ

0

Для меня добавляющие следующие строки помогли:

from matplotlib.backends.backend_pgf import FigureCanvasPgf 
import matplotlib as mpl 
mpl.backend_bases.register_backend('pdf', FigureCanvasPgf) 
Смежные вопросы