使用 PythonTex 时的字符串格式化

使用 PythonTex 时的字符串格式化

首先,非常感谢 PythonTex 的创建者 Geoffrey Poore。P​​ythonTeX 非常棒。这是我第一次尝试使用它,并且非常喜欢它的功能。在使用 PythonTeX 创建 LaTeX 代码时,我在使用字符串格式方面遇到了一些问题。请参阅下面的两个代码片段。使用 Snippet 1 可以正常工作,但使用 Snippet 2 则不行。为什么第二个代码片段会失败?如何在 PythonTeX 中使用字符串格式。

感谢您的帮助。

片段 1(有效)

fig_string = r'''
     \begin{figure}[!ht]
         \hspace{-0.35in}      
         \includegraphics{../../mycode/plots_dir/myplot_'''+fig_id+'''.pdf}
     \end{figure}
'''

print(fig_string)

代码片段 2(引发错误)

    fig_string = r'''
        \begin{figure}[!ht]
            \hspace{-0.35in}
                \includegraphics{../../code20121201/simgridplots_paper/gridplot_{0}.pdf}
        \end{figure}
    '''.format(fig_id)

    print(fig_string)

代码片段 2 抛出的错误

这是 PythonTeX v0.11

----  Errors and Warnings for py:default:default  ----
  Traceback (most recent call last):
* PythonTeX code error on line 149:
    File "pythontex-files-figures_doc/py_default_default.py", line 148, in <module>
      '''.format(fig_id)
  KeyError: 'figure'

答案1

Python 的.format()方法替换了用花括号分隔的字段{}。不幸的是,LaTeX 将花括号用于其他目的。因此您需要转义 LaTeX 花括号。转义是通过双括号来实现的。请参阅http://docs.python.org/2/library/string.html#formatstrings更多细节。

因此,就您而言,您需要类似的东西\begin{{figure}}[!ht]...

相关内容