我已经开始使用带有 latex 的 pythontex 并且遇到了这样一种情况:当代码从 tex 文档中剥离出来时,似乎出现了某种编号问题。
这是一个简单的例子:
%! program = pdflatex
\documentclass[oneside,11pt,letterpaper,article]{memoir}
\usepackage{pythontex}
\begin{pycode}
import math
Temp="Text"
def tTableData():
tTempTableData="Text 1 & Text 2 \\\\ \n Text 3 & Text 4 \\\\ \n"
return tTempTableData
\end{pycode}
\begin{document}
\begin{itemize}
\item \py{Temp}
\end{itemize}
\begin{table}[ht]
\begin{tabular}{c c}
Column 1 & Column 2 \\
\py{tTableData()}
\end{tabular}
\end{table}
\py{Temp}
\py{Temp}
\end{document}
我发现在第一次 latex 编译操作中,.pytxcode 文件已正确生成,并生成了以下几行:
=>PYTHONTEX#py#default#default#1#inline##20#
Temp
=>PYTHONTEX#py#default#default#2#inline##26#
tTableData()
=>PYTHONTEX#py#default#default#3#inline##30#
Temp
=>PYTHONTEX#py#default#default#4#inline##31#
Temp
运行 pythontex.py 并使用 latex 重新编译文档后,产生了以下错误(从日志文件中截取):
./testfile.tex:26: Undefined control sequence.
<argument> c@\pytx@counter
l.26 \py{tTableData()}
./testfile.tex:26: Undefined control sequence.
...ssage LaTeX Error: No counter '\pytx@counter
' defined.
See the LaTeX ...
l.26 \py{tTableData()}
./testfile.tex:26: LaTeX Error: No counter '' defined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.26 \py{tTableData()}
./testfile.tex:26: Undefined control sequence.
<argument> \pytx@counter
l.26 \py{tTableData()}
.pytxcode 文件现在包含以下几行:
=>PYTHONTEX#py#default#default#1#inline##20#
Temp
=>PYTHONTEX#py#default#default#2#inline##26#
tTableData()
=>PYTHONTEX#py#default#default#2#inline##30#
Temp
=>PYTHONTEX#py#default#default#3#inline##31#
Temp
请注意第 26 行和第 30 行中 #2 的重复条目。
如果删除了逐项列表(但\py{Temp}
保留在原处),则一切似乎都运行正常。
对于为什么会发生这种情况有什么想法吗?
我正在运行 texlive 2012 和 pythontex v. 0.11。
答案1
这是与 PythonTeX 计数器相关的错误。我会在几天后发布的下一个版本中修复它。
与此同时,您可以通过打开pythontex.sty
并将每个替换\edef\pytx@counter
为来解决这个问题\xdef\pytx@counter
。