MEP29: 文本轻量标记#

状态#

讨论

分支和拉取请求#

目前没有内容,仅用于概念验证。

摘要#

本 MEP 提议为文本艺术家添加轻量级标记。

详细描述#

在文本注释中使用不同的尺寸/颜色/字体族是困难的,因为 text 方法接受用于整个文本的尺寸/颜色/字体族/粗细等参数。但是,如果有人想要,例如,使用不同的颜色,就必须查看图库,那里提供了一个这样的例子:连接具有不同属性的文本对象

这个示例接受一个字符串列表和一个颜色列表,这使得使用起来很麻烦。另一种方法是使用一组受限的类似 pango 的标记,并解释这些标记。

一些标记示例:

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

实现#

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

改进#

  • 这个概念验证使用正则表达式来解析文本,但可能使用标准库中的html.parser会更好。

  • 文本片段位置的计算可以从 OffsetFrom 类中受益。例如,参见 使用复杂坐标进行注释 中的第5项。

问题#

  • 一个严重的问题是如何处理同时包含 LaTeX 和 HTML 标签的文本。例如,考虑以下内容:

    $<b>Bold$</b>
    

    建议采用互斥机制。

向后兼容性#

目前没有内容,因为这只是一个概念验证。

替代方案#

如 @anntzer 所提议,这也可以作为对 mathtext 的改进来实现。例如:

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