MEP29:文本轻量级标记#

状态#

讨论

分支和 Pull requests#

目前没有,仅用于概念验证.

摘要#

此 MEP 提议向文本艺术家添加轻量级标记.

详细描述#

在文本注释中使用不同的大小/颜色/族很困难,因为 text 方法接受用于整个文本的大小/颜色/族/权重/等的参数.但是,如果想要,例如,具有不同的颜色,则必须查看图库,其中提供了一个这样的示例 连接具有不同属性的文本对象

此示例采用字符串列表以及颜色列表,这使得使用起来很麻烦.另一种方法是使用一组受限制的类似 pango 的标记并解释此标记.

一些标记示例:

Hello <b>world!</b>`
Hello <span color="blue">world!</span>

实施#

概念验证在 markup_example.py 中提供, 但它目前仅处理水平方向.

改进#

  • 此概念验证使用 regex 来解析文本,但最好使用标准库中的 html.parser.

  • 文本片段位置的计算可以从 OffsetFrom 类中受益. 例如,参见 Using Complex Coordinates with Annotations 中的第 5 项

问题#

  • 一个严重的问题是如何处理同时具有 LaTeX 和 HTML-like 标签的文本. 例如,考虑以下情况:

    $<b>Bold$</b>
    

    建议是互斥.

向后兼容性#

目前没有,因为它只是一个概念验证

替代方案#

正如 @anntzer 提出的,这也可能被实现为对 mathtext 的改进.例如:

r"$\text{Hello \textbf{world}}$"
r"$\text{Hello \textcolor{blue}{world}}$"
r"$\text{Hello \textsf{\small world}}$"