gpt4 book ai didi

Python 将格式化方法与使用 LaTeX 的长字符串相结合

转载 作者:太空狗 更新时间:2023-10-29 22:22:21 50 4
gpt4 key购买 nike

我正在尝试将包含多个 LaTeX 命令和变量的长字符串写入图像。在保持 LaTeX 格式的同时,我无法为变量设置任意精度。

这是一个 MWE:

import matplotlib.pyplot as plt
# Define some variables names and values.
xn, yn, cod, prec, prec2 = 'r', 'p', 'abc', 2, 4
ccl = [546.35642, 6785.35416]
ect = [12.5235, 13.643241]

plt.figure()

text1 = "${}_{t} = {:.{p}f} \pm {:.{p}f} {c}$".format(xn, ccl[0], ect[0], c=cod, p=prec)
text2 = "${}_{t} = {:.{p}f} \pm {:.{p}f} {c}$".format(yn, ccl[1], ect[1], c=cod, p=prec2)

text = text1 + '\n' + text2
plt.text(0.5, 0.5, text)
plt.savefig('format_test.png', dpi=150)

这会抛出错误 KeyError: 't' 因为它将子索引 {t} 识别为变量。相反,如果我使用:

text1 = "${{{a}}}_{t} = {:.{p}f} \pm {:.{p}f} {c}$".format(a=xn, ccl[0], ect[0], c=cod, p=prec)
text2 = "${{{a}}}_{t} = {:.{p}f} \pm {:.{p}f} {c}$".format(b=yn, ccl[1], ect[1], c=cod, p=prec2)

我得到 SyntaxError: non-keyword arg after keyword arg 因为现在我有 ccl[0], ect[0] 变量 formata=xn 之后定义(第二个文本行相同)。

请注意 format 末尾的 precprec2 值,它们决定打印时数字的小数位数。我需要传递这个变量,因为它不是固定的,我不能只设置一个固定值来替换 {:.{p}f}

如何在保持 LaTeX 格式和所需的不同精度的同时使这些字符串行有效?

最佳答案

我认为您需要在 t 周围添加一个额外的大括号。这对我有用:

text1 = r"${}_{{t}} = {:.{p}f} \pm {:.{p}f} {c}$".format(xn, ccl[0], ect[0], c=cod, p=prec)
text2 = r"${}_{{t}} = {:.{p}f} \pm {:.{p}f} {c}$".format(yn, ccl[1], ect[1], c=cod, p=prec2)

添加双花括号意味着它们按字面意思处理,而不是 python 格式语法的一部分

enter image description here

关于Python 将格式化方法与使用 LaTeX 的长字符串相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767606/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com