MEP29:文本浅色标记

状态

讨论

分支和请求

目前没有,只有概念证明。

摘要

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

详细描述

在文本注释中使用不同的大小/颜色/族是困难的,因为 text 方法接受用于整个文本的大小/颜色/系列/权重等的参数。但是,如果你想拥有不同的颜色,比如说,你必须看看画廊里提供了这样一个例子:http://matplotlib.org/examples/text_labels_and_annotations/rainbow_text.html

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

一些标记示例:

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

实施

概念证明见 markup_example.py 但目前它只处理水平方向。

改进

  • 这个概念验证使用regex解析文本,但最好使用标准库中的html.parser。
  • 文本片段位置的计算可以从类的偏移量中受益。参见中项目5的示例。 Using Complex Coordinates with Annotations

问题

  • 一个严重的问题是如何处理既有 Latex 标签又有类似HTML标签的文本。例如,考虑以下内容:

    $<b>Bold$</b>
    

    建议是相互排斥。

向后兼容性

目前没有,因为它只是概念的证明

选择

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

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