首先,非常感谢 PythonTex 的创建者 Geoffrey Poore。PythonTeX 非常棒。这是我第一次尝试使用它,并且非常喜欢它的功能。在使用 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]...
。