是否可以用 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 排版分数?的主要内容,如果未能解决你的问题,请参考以下文章

通栏排版怎么设置

用indesign排版时 图片该不该超过出血线

pdf原来的文件 排版很好,但是用abbyy 转了之后,排版就变得十分糟糕了,怎么办?

markdown排版示例

通栏排版是啥意思?

文字排版--字体/--字号颜色