我正在尝试使用 pweave 和 LaTeX 进行可重复的研究。我看到奇怪的行为试图在代码块中显示变量的值。我希望有人能解释发生了什么。
在代码块中调用 print() 时,根据要打印的内容,pweave 有时会在标记文件中为代码生成逐字部分,但不会为代码的输出生成部分。
环境是来自 Ubuntu 存储库的 Ubuntu 18.04、python 3.6.8 和 python-pweave 0.25-1。(这是可用的最新版本。)
我已经尝试了许多变体来确定哪些有效,哪些无效。问题是否发生取决于代码块将打印的行数或字符数。
我正在使用 noweb 格式的 pweave.weave() 函数,如下所示:
pweave.weave(文件名,doctype='tex',informat='noweb',输出=outfile)
以下代码块“正确”工作。
<<>>=
x = 3.14
print( x )
@
它在 .tex 文件中生成以下内容:
\begin{verbatim}
x = 3.14
print( x )
\end{verbatim}
\begin{verbatim}
3.14
\end{verbatim}
代码块和解释器输出有单独的逐字部分。
另一方面,这个代码块不起作用。
<<>>=
x = 3
print( x )
@
它产生以下输出:
\begin{verbatim}
x = 3
print( x )
\end{verbatim}
解释器的输出没有逐字记录部分。
另一个有效的例子是这个。
<<>>=
x = 33
print( x )
print( "Something else" )
@
它产生这个输出:
\begin{verbatim}
x = 33
print( x )
print( "Something else" )
\end{verbatim}
\begin{verbatim}
33
Something else
\end{verbatim}
同样,有两个单独的逐字部分。
然而,这不起作用。
<<>>=
X = 33
print( x )
@
它产生这个输出。
\begin{verbatim}
X = 33
print( x )
\end{verbatim}