mit Python und Latex ein PDF erstellen Thema ist als GELÖST markiert

Formelsatz für Mathematik, Naturwissenschaften und Technik


Georg

mit Python und Latex ein PDF erstellen

Beitrag von Georg »

Hallo,

ich beschäftige mich seit kurzem mit einem kleinen Python und Latex Problem. Ich würde gerne mit Python und der Hilfe von Latex eine PDF Datei erzeugen. In Python hat das erstellen der Latexdatei schon funktioniert und ich konnte auch mit Hilfe von Texmaker und Texworks die PDF Datei erstellen. Leider erstellt mir aber das Pythonprogramm nur die Latexdatei und nicht die PDF Datei.
Muss ich in den Programmen Texmaker und Texwork irgendetwas bestimmtes einstellen?

Ich möchte mich schon jetzt für eure Hilfe bedanken.

lg
Georg
import re
import os
import shutil

project = "./"
in_file = "{}example.txt".format(project)
build_d = "{}.build/".format(project)
out_file = "{}template".format(build_d)
template = "test"


current_object = None
current_content = ""
latex_formated_variables = ""

with open(in_file) as f:
    content = f.read()
    keys = re.findall(r"%(.+):", content)
    values = re. findall(r":\s*([\w\W]+?)\s*(?:%|$)", content)

options = zip(keys, values)

tex_code = ""
for key, value in options:
    tex_code = tex_code + "\\newcommand{{\\{}}}{{{}}}\n".format(key, value)
tex_code = tex_code + """

\\documentclass{{{}}} % din a4, 11 pt, one-sided,

\\begin{{document}}

\\end{{document}}
""".format(template)

if not os.path.exists(build_d):  # create the build directory if not exisiting
    os.makedirs(build_d)

with open(out_file+".tex", "w") as f:  # saves tex_code to outpout file
    f.write(tex_code)

os.system("pdflatex -output-directory {} {}".format(os.path.realpath(build_d), os.path.realpath(out_file)))

#shutil.copy2(out_file+".pdf", os.path.dirname(os.path.realpath(in_file)))

Gast

Beitrag von Gast »

Bisher erzeugt dein Script AFAIK kein gültiges TeX-File. Außerdem musst du pdflatex den Namen der TeX-Datei als Parameter übergeben. Den Namen der PDF-Datei braucht es hingegen nicht.

Die Editoren die du normalerweise für deine LaTeX-Dateien verwendest, also TeXmaker oder Texwork, haben mit dem Problem hingegen nichts zu tun. Die sind ja bei der Erstellung der PDF-Datei gar nicht beteiligt.

Nützlich bei Problemen auf der LaTeX-Seite ist übrigens hier weniger das Python-Script als die davon erzeugte TeX-Datei und die von pdflatex erzeugte log-Datei. Außerdem aus dem Python-Script ggf. noch der gewählte Aufruf.

BTW: Im ersten Schritt würde ich empfehlen, auf -output-directory zu verzichten und den Aufruf von pdflatex möglichst einfach zu halten. Wenn das so weit funktioniert, ist es früh genug, um mit weiteren Optionen für pdflatex zu spielen.

BTW: Mit Mathematik hat die Frage irgendwie rein gar nichts zu tun. Mit LaTeX auch nur sehr am Rande.

Antworten