字符串格式化和文本渲染

String formating and Tex rendering

我 运行 在 python 中组合字符串格式和 tex 渲染时遇到一些问题,这些问题使事物正确显示。我想用整数索引一系列能量水平。这适用于个位数整数,但是当我尝试例如:

s = r"$E_{}$".format(10)

结果看起来像 E10,而我希望它看起来像 E10。我试过使用双括号,但这似乎不起作用,因为

s = r"$E_{{}}$".format(10)

结果是完全没有任何下标的“E”,类似于

s = r"$E_{{k}}$".format(k = 10)

可预测地给出 Ek.

对我来说,这里的问题似乎是字符串格式和 Tex 语法都使用花括号,虽然加倍大括号确实会转义格式,但这对我不起作用,因为我仍然想插入k 的值不知何故。有什么办法解决这个问题,还是我必须求助于格式化字符串的老派方法?

文字 { 可以包含在 {{ 中 - 然后您需要另一个 {} 来获取格式占位符 - 所以您需要 3:

s = r"$E_{{{}}}$".format(10)
print(s)

结果:

$E_{10}$

应该渲染成你想要的。