在Python 3中格式化LaTeX数学字符串

时间:2018-01-18 02:55:56

标签: string python-3.x math latex

我看到可以在python中的LaTeX字符串上使用format方法,方法是使用双花括号,如here所示。例如:

In[1]: 'f_{{{0}}}'.format('in')
Out[1]: 'f_{in}'

但是如何在数学LaTeX字符串中使用format方法? (特别是对于下标)

例如,使用:

In[2]: r'$f_{in,{{0}}}$'.format('a')

我希望:

Out[2]: '$f_{in,a}$'

但我得到了

ValueError: unexpected '{' in field name

1 个答案:

答案 0 :(得分:1)

In[2]的正确陈述应为:

r'$f_{{in,{0}}}$'.format('a')
# gives '$f_{in,a}$'

以下为清晰起见:

'$f_{{ in, {0} }}$'.format('in')
    ^^_________^^
    these curly braces are escaped, which leaves 'in, {0}' at the center

<强>说明: r'$f_{in,{{0}}}$'.format('a')的问题在于{后面的大括号$f_}前面的大括号$也需要转义,这就是导致了ValueError


为了进一步理解f_In[1]中语句的同一组花括号('f_{{{0}}}'.format('in')包含)也被转义。当你减少这一点时,你会注意到{0}留在这些花括号中,允许替换'in'。因此,我们只评估了f_{in} { {1}}。以下是为清晰起见的说明:

Out[1]