是否可以用 pyx 排版分数?
Posted
技术标签:
【中文标题】是否可以用 pyx 排版分数?【英文标题】:Is it possible to typeset fractions with pyx? 【发布时间】:2021-01-14 01:33:20 【问题描述】:我有这个 python sn-p:
from pyx import *
from pyx import text
text.set(mode="latex")
text.preamble(r"\usepackageamssymb")
text.preamble(r"\usepackageamsmath")
c.text(-0.5, 0.1, r"\huge$\frac83$", [text.halign.boxcenter])
哪个失败并出现错误:
The expression passed to TeX was:
\ProcessPyXBox\gdef\PyXBoxHAlign0.50000\huge$\frac83$%
1%
\PyXInput5%
After parsing the return message from TeX, the following was left:
*
*! Undefined control sequence.
<recently read> \frac
<argument> ...PyXBoxHAlign 0.50000\huge $\frac
(cut after 5 lines; use errordetail.full for all output)
这只发生在\frac
,如果我打印一个符号而不是分数,比如5,它可以正常工作。
【问题讨论】:
【参考方案1】:解决方案是在创建画布之前调用所有文本操作:
text.set(text.LatexEngine, texenc='utf-8')
text.preamble(r'\usepackage[utf8]inputenc')
text.preamble(r"\usepackageamssymb")
text.preamble(r"\usepackageamsmath")
text.preamble(r"\usepackageamsfonts")
c = canvas.canvas().layer("aa")
【讨论】:
这是正确的。在创建画布时,它可以获得一个文本引擎作为构造函数参数。如果未设置任何内容,则它使用此时设置的文本模块中的 defaulttextengine。如果您稍后对其进行配置,则从画布中看不到这一点。以上是关于是否可以用 pyx 排版分数?的主要内容,如果未能解决你的问题,请参考以下文章