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}}$"