2013-12-09 7 views
6

私はここから次のコードの大部分を得た:Generating pdf-latex with python scriptこのコードを実行しているとValueError:サポートされていない形式の文字 '

#!/usr/bin/env python 

from __future__ import division 
from functions import * 
import shlex 

#from Utilities import * 
import os 
import argparse 
import subprocess 

equation = '\begin{equation*}1 + \gamma\lambda B/2\end{equation*}' 

content=r'''\documentclass{article} 
\usepackage{graphicx,amsmath} 

\begin{document} 
\noindent\rotatebox{180}{\vbox{% 
    %(equation)s 
    }% 
} 
\end{document} 
''' 

parser=argparse.ArgumentParser() 
parser.add_argument('-e', '--equation', default=equation) 

args=parser.parse_args() 
content%args.__dict__ 

print content%args.__dict__ 

は私に次のエラーを与える:

Traceback (most recent call last): 
    File "latex.py", line 29, in <module> 
    content%args.__dict__ 
ValueError: unsupported format character ' 
' (0xa) at index 104 

誰もが間違って何が起こっているか知っていますか?私はページを回転させる他の方法から同じエラーを受けています。

+0

それは改行をサポートしていないことを伝えています。 – AronVietti

+0

* Aside *: 'equation'の文字列リテラルは、おそらく生の文字列リテラルでなければなりません:' equation = r '\ begin ...' '。 –

+0

@AronVietti: '%\ n'は有効な書式設定構文ではないことを伝えています。 –

答えて

13

任意%contentは、書式設定プレースホルダとみなされます。プレースホルダではないという二重任意:

content=r'''\documentclass{article} 
\usepackage{graphicx,amsmath} 

\begin{document} 
\noindent\rotatebox{180}{\vbox{%% 
    %(equation)s 
    }%% 
} 
\end{document} 
''' 

そうでない場合\noindent\rotatebox{180}{\vbox{%行の末尾%はしたがって書式文字、改行を持つ例外として\n改行と共に見られます。

+0

素晴らしい。魅力的に働いた。 – juggler

+0

モジュラスを文字列として使用した計算をエンコードする際にこのエラーが発生しました。 –

関連する問題