そのまんまでは,入力と出力のフォーマットに全く違いがない。ので,まぎらわしい。
Sweave のようには行かず,インタラクティブモードのように,入力の前にプロンプトがつくようにはできないようだ。
そこで,LaTeX の listings を使う。
listings.sty と jlisting.sty を用意して,プリアンブルで以下を定義しておく。
\usepackage{listings,jlisting}
\lstset{%
basicstyle={\ttfamily\normalsize},%
frame={tbrl},
numbers=left,%
xleftmargin=3zw,%
lineskip=-0.5ex%
}
これだけではだめで,
/usr/local/lib/python3.6/site-packages/pweave/formatters/tex.py
の,initformat の赤字部分を以下のように変更する。
def initformat(self):
self.formatdict = dict(codestart='\\begin{lstlisting}',
codeend='\\end{lstlisting}',
outputstart='\\begin{quote}\n\\begin{verbatim}',
outputend='\\end{verbatim}\n\\end{quote}',
figfmt='.pdf',
width='\\linewidth',
doctype='tex')
これで
<<>>=
x = 2
y = 4
print(x-y)
@
が,
のようなイメージで表示される。
すなわち,プログラム〔入力〕が行番号付きで,出力は行番号なしで出力される。
\color{} を使って,入力と出力を分けることもできるけど,色を使うのは避けたい。