Bạn có thể bắt đầu bằng cách xác định tập tin tex mẫu như là một chuỗi:
content = r'''\documentclass{article}
\begin{document}
...
\textbf{\huge %(school)s \\}
\vspace{1cm}
\textbf{\Large %(title)s \\}
...
\end{document}
'''
Tiếp theo, sử dụng argparse
để chấp nhận giá trị cho quá trình, tiêu đề, tên và trường học:
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')
Một chút định dạng chuỗi là tất cả những gì cần để gắn các arg vào trong content
:
args = parser.parse_args()
content%args.__dict__
Sau khi viết nội dung ra một tập tin, cover.tex,
with open('cover.tex','w') as f:
f.write(content%args.__dict__)
bạn có thể sử dụng subprocess
gọi pdflatex cover.tex
.
proc = subprocess.Popen(['pdflatex', 'cover.tex'])
proc.communicate()
Bạn cũng có thể thêm lệnh lpr
vào đây để thêm in vào quy trình làm việc.
Remove file không cần thiết:
os.unlink('cover.tex')
os.unlink('cover.log')
Kịch bản sau đó có thể được gọi như thế này:
make_cover.py -c "Hardest Class Ever" -t "Theoretical Theory" -n Me
Đưa nó tất cả cùng nhau,
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')
Trình chỉnh sửa văn bản nhanh hơn IMHO. Bạn vẫn phải nhập tiêu đề, tên khóa học, v.v. mỗi lần bạn in trang bìa. Tôi muốn chuyển đổi tệp PDF đó thành mẫu từ. Thử: http://www.pdftoword.com/ –
Bạn chỉ có thể sử dụng một trình quản lý đoạn mã/mẫu trong một trình soạn thảo văn bản. –
đó là ý tưởng hay! nhưng tôi đang tìm kiếm thứ gì đó tự chế tạo/geek. – juliomalegria