0

Python 2.7 と LaTeX で Ubuntu サーバーを使用しており、この LaTeX コードをシェル コマンド pdflatex test.tex でコンパイルしようとしています。

\documentclass{article}

\usepackage{python}

\begin{document}

     \begin{python}
     print "Hello World"
     \end{python}

\end{document}

両方を一緒に使用するのは初めてなので、非常に簡単ですが、次のエラーメッセージが表示されます。

(/usr/share/texmf/tex/latex/python/python.sty

Package: python 2007/06/07 v0.21 Python in LaTeX
\@out=\write3
\@module=\write4
) (./test.aux)

! I can't write on file `test.aux'.

\document ...ate \openout \@mainaux \jobname .aux          
\immediate \write \@mainau...
l.5 \begin{document}                   

(Press Enter to retry, or Control-D to exit; default file extension is `.tex')
Please type another output file name: 
! Emergency stop.
\document ...ate \openout \@mainaux \jobname .aux      

それはおそらく許可の問題か何かですか?

4

2 に答える 2

2

問題のLaTeXパッケージの経験はありませんが、私が知る限り、pythonスニペットを実行して出力を含めようとします。Python セグメントから先頭の空白を削除してみてください。

\begin{python}
print "Hello World!"
\end{python}

それ以外の:

     \begin{python}
     print "Hello World!"
     \end{python}

不要な先頭の空白により、python インタープリターが をスローし、IndentationErrorこれがおそらく python.sty を混乱させています。python.styをざっと見てみると、次のシェル コマンドが実行することを実行すると思います。

prompt$ echo '     print "Hello World!"' > test.py
prompt$ cat test.py | python > test.py.out 2> test.py.err

次に、空になるtest.py.outのそのままのインクルードを行います。標準エラー出力には、次のようなものが含まれます。

File "<stdin>", line 1
  print "Hello World!"
  ^
IndentationError: unexpected indent

sty ファイルには、標準エラー出力を無視してはならないという記述があります。pythonインタープリターが正常に終了しない場合、出力が LaTeX によって生成されることはありませんが、間違っている可能性があります。

于 2012-07-18T14:15:57.610 に答える
1

エラーメッセージはあなたの利益のためにあります!

! I can't write on file `test.aux'.

LaTex がファイル 'test.aux' に何かを書き込もうとしているが、できないことを意味します。最も可能性の高い理由は、ファイルを別の場所で開いているためにファイルがロックされていることです。

ファイルを削除してみると、これを確認できるはずです。ロックを解除したら、問題ありません。最悪の場合、再起動します。

于 2012-07-18T13:34:24.350 に答える