여러 LaTeX 명령과 변수가 포함 된 긴 문자열을 이미지에 쓰려고합니다. LaTeX 형식을 유지하면서 변수의 임의의 정밀도를 설정하는 데 문제가 있습니다. 이 변수로서 서브 인덱스 {t}
인식되므로Python에서 LaTeX을 사용하는 긴 문자열과 형식 메서드를 결합합니다.
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'
예외 :
여기 MWE이다. 대신하면 내가 사용
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
를 얻을 지금은 a=xn
(두 번째 텍스트 라인에 대한 동일) 이후에 정의 format
에서 ccl[0], ect[0]
변수가 있습니다.
format
의 끝에 prec
및 prec2
값이 인쇄 될 때 소수점 이하 자릿수를 결정합니다. 내가 고정되어 있지 않기 때문에이 변수를 전달해야합니다, 난 그냥 고정 값을 {:.{p}f}
대체 설정할 수 없습니다.
LaTeX 서식을 유지하면서 다른 정밀도를 유지하면서 이러한 줄을 어떻게 만들 수 있습니까?
감사합니다 @ 톰 파이썬 형식 구문의 일환으로, 문자 그대로 처리하는 것을 의미! 그 일은 훌륭했습니다. – Gabriel
이것은 새로운 포맷 언어의 주된 단점 중 하나입니다. 라텍스와 함께 정말 나 빠지게됩니다. – tacaswell