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