2014-08-27 3 views
2

Когда я пытаюсь сохранить фигуру python как PostScript, при использовании Latex и пакета xfrac у меня появляется ошибка, я могу сохранить фигуру в других форматах, но не в PostScriptОшибка при попытке сохранить постскриптум с matplotlib Latex

Это код, который я использую ..

import matplotlib 
import matplotlib.pyplot as plt 

# Use LaTeX for rendering 
matplotlib.rcParams["text.usetex"] = True 
# load the xfrac package 
matplotlib.rcParams["text.latex.preamble"].append(r'\usepackage{xfrac}') 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot([0,1],[1,0]) 
ax.text(.5, .5, r'$\sfrac{1}{2}$') 
plt.savefig('111.ps') 

Это ошибка, я получаю (Если я не использую xfrac пакет я не получаю сообщение об ошибке)

LaTeX was not able to process your file:  
Here is the full report generated by LaTeX: 

This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=latex) 
restricted \write18 enabled. 
entering extended mode 
(/tmp/tmp0Nr4Ze.tex 
LaTeX2e <2014/05/01> 
Babel <3.9k> and hyphenation patterns for 79 languages loaded. 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/base/article.cls 
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/base/size10.clo)) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/type1cm/type1cm.sty) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/psnfss/helvet.sty 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/graphics/keyval.sty) 
) (/home/users/MyName/Local/Latex/texmf-dist/tex/latex/psnfss/courier.sty 
) (/home/users/MyName/Local/Latex/texmf-dist/tex/latex/base/textcomp.sty 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/base/ts1enc.def)) 
(/home/users/MyName/texmf/tex/latex/xfrac.sty 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/amsmath/amstext.sty 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/amsmath/amsgen.sty)) 

(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/graphics/graphicx.st 
y 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/graphics/graphics.st 
y (/home/users/MyName/Local/Latex/texmf-dist/tex/latex/graphics/trig.sty) 

(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/latexconfig/graphics 
.cfg) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/graphics/dvips.def)) 
) (/home/users/MyName/texmf/tex/latex/l3keys2e.sty 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/l3kernel/expl3.sty 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/l3kernel/expl3-code. 
tex 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/etex-pkg/etex.sty)) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/l3kernel/l3unicode-d 
ata.def) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/l3kernel/l3dvips.def 
))) (/home/users/MyName/texmf/tex/latex/xparse.sty) 
(/home/users/MyName/texmf/tex/latex/xtemplate.sty)) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/geometry/geometry.st 
y 
(/home/users/MyName/Local/Latex/texmf-dist/tex/generic/oberdiek/ifpdf.sty 
) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/generic/oberdiek/ifvtex.st 
y) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/generic/ifxetex/ifxetex.st 
y) 

Package geometry Warning: Over-specification in `h'-direction. 
    `width' (614.295pt) is ignored. 


Package geometry Warning: Over-specification in `v'-direction. 
    `height' (794.96999pt) is ignored. 

) (/home/users/MyName/Local/Latex/texmf-dist/tex/latex/psfrag/psfrag.sty) 


! LaTeX Error: Option clash for package graphicx. 

See the LaTeX manual or LaTeX Companion for explanation. 
Type H <return> for immediate help. 
...            

l.13 \usepackage 
       {color} 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/graphics/color.sty 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/latexconfig/color.cf 
g) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/graphics/dvipsnam.de 
f)) 
No file tmp0Nr4Ze.aux. 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/base/ts1cmr.fd) 
(/home/users/MyName/Local/Latex/texmf-dist/tex/latex/psnfss/ot1pnc.fd) 
*geometry* detected driver: dvips 
<tmp0Nr4Ze.eps> [1] (./tmp0Nr4Ze.aux)) 
(see the transcript file for additional information) 
Output written on tmp0Nr4Ze.dvi (1 page, 3368 bytes). 
Transcript written on tmp0Nr4Ze.log. 

кто час как любая идея, как это решить?

EDIT

теперь я узнал, что, если я пытаюсь сохранить его как PGF (LaTeX PGF рисунок)

Я получаю эту ошибку

Error processing '\(\displaystyle \sfrac{\tau_{peel}}{\tau_{m}}\)' 
LaTeX Output: 
! Undefined control sequence. 
<argument> ...}\selectfont \(\displaystyle \sfrac 
                {\tau _{peel}}{\tau _{m}}\) 
<*> ...splaystyle \sfrac{\tau_{peel}}{\tau_{m}}\)} 

No pages of output. 
Transcript written on texput.log. 

edit2:

Я несколько раз получил (а) эту ошибку

dvipng warning: No image output from inclusion of raw PostScript GPL Ghostscript 9.05: Unrecoverable error, exit code 1 

Так я обновил Ghostscript и теперь я получаю эту ошибку :-)

dvipng warning: No image output from inclusion of raw PostScript GPL Ghostscript 9.14: Unrecoverable error, exit code 1 

ответ

1

В этом случае для вывода ps - Вам необходимо пройти dvips вариант graphicx:

\usepackage[dvips]{graphicx} 

Сценарий должен быть:

import matplotlib 
import matplotlib.pyplot as plt 

# Use LaTeX for rendering 
matplotlib.rcParams["text.usetex"] = True 
# load the xfrac package 
matplotlib.rcParams["text.latex.preamble"].append(r'\usepackage[dvips]{graphicx}\usepackage{xfrac}') 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot([0,1],[1,0]) 
ax.text(.5, .5, r'$\sfrac{1}{2}$') 
plt.savefig('111.ps') 

Возможно, graphicx загружается с помощью matplotlib, и для вывода ps matplotlib использует драйвер dvips, и поэтому опция должна быть передана в graphicx.

Я думаю, что легче вывести pdf с вашим исходным кодом и преобразовать его в ps с ghostscript.

Смежные вопросы