首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图使用matplotlib Latex保存postscript时出错

试图使用matplotlib Latex保存postscript时出错
EN

Stack Overflow用户
提问于 2014-08-27 11:10:17
回答 1查看 2.5K关注 0票数 2

当我尝试将python图形保存为PostScript时,当我使用Latex和xfrac包时,我得到了一个错误,我可以以其他格式保存这个图形,但不能用PostScript保存。

这是我使用的代码..。

代码语言:javascript
复制
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包,我就不会得到一个错误)

代码语言:javascript
复制
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.

有人知道怎么解决这个问题吗?

编辑

现在我发现,如果我试图将它保存为pgf ( LaTeX PGF图)

我知道这个错误

代码语言:javascript
复制
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:

我有时会犯这个错误

代码语言:javascript
复制
dvipng warning: No image output from inclusion of raw PostScript GPL Ghostscript 9.05: Unrecoverable error, exit code 1

所以我更新了Ghostscript,现在我得到了这个错误:-)

代码语言:javascript
复制
dvipng warning: No image output from inclusion of raw PostScript GPL Ghostscript 9.14: Unrecoverable error, exit code 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-27 15:24:46

在本例中,为了输出ps,需要将dvips选项传递给graphicx

代码语言:javascript
复制
\usepackage[dvips]{graphicx}

剧本应该是:

代码语言:javascript
复制
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并用ghostscript将其转换为ps更容易。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25525632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档