あなたは文字列としてテンプレートTeXファイルを定義することによって開始することができます
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--course')
parser.add_argument('-t', '--title')
parser.add_argument('-n', '--name',)
parser.add_argument('-s', '--school', default='My U')
ビット文字列の書式設定は、argをスティックするために必要なものです。content
:
args = parser.parse_args()
content%args.__dict__
ファイルに内容を書き込んだ後、cover.tex、
with open('cover.tex','w') as f:
f.write(content%args.__dict__)
あなたがpdflatex cover.tex
を呼び出すためにsubprocess
を使用することができます。
proc = subprocess.Popen(['pdflatex', 'cover.tex'])
proc.communicate()
ワークフローに印刷を追加するにはあまりにもここlpr
コマンドを追加することができます。
不要なファイルを削除します。
os.unlink('cover.tex')
os.unlink('cover.log')
スクリプトは、このように呼ばれることができます:一緒にすべてを置く
make_cover.py -c "Hardest Class Ever" -t "Theoretical Theory" -n Me
、
import argparse
import os
import subprocess
content = r'''\documentclass{article}
\begin{document}
... P \& B
\textbf{\huge %(school)s \\}
\vspace{1cm}
\textbf{\Large %(title)s \\}
...
\end{document}
'''
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--course')
parser.add_argument('-t', '--title')
parser.add_argument('-n', '--name',)
parser.add_argument('-s', '--school', default='My U')
args = parser.parse_args()
with open('cover.tex','w') as f:
f.write(content%args.__dict__)
cmd = ['pdflatex', '-interaction', 'nonstopmode', 'cover.tex']
proc = subprocess.Popen(cmd)
proc.communicate()
retcode = proc.returncode
if not retcode == 0:
os.unlink('cover.pdf')
raise ValueError('Error {} executing command: {}'.format(retcode, ' '.join(cmd)))
os.unlink('cover.tex')
os.unlink('cover.log')
テキストエディタは、より高速なIMHOです。カバーページを印刷するたびに、タイトル、コース名などを入力する必要があります。私はそのPDFを単語テンプレートに変換します。試してみてください。http://www.pdftoword.com/ –
スニペット・マネージャー/テンプレート・システムをテキスト・エディターで使用できます。 –
それは良いアイデアです!しかし、私はもっと自分自身/オタクを探していました。 – juliomalegria