Seite 1 von 1

Latex mit Phyton verwenden newline \n verändern?

Verfasst: Sonntag 18. November 2018, 13:12
von Lance
Hallo,
ich bin neu hier im Forum und Python Anfänger und wollte mal versuchen mit Python einen Latexcode zu schreiben. Das hat soweit auch funktioniert mit file = open ("new.tex", "w")

Ich hab mir ein kleine Funktion zum Erstellen eines Komavar geschrieben.

wenn ich jetzt aber file.write ("\newkomavar") schreibe kommt logischerweise eine Leerzeile und dann "ewkomavar" raus, da ja im String " \n " vorkommt.

gibt es irgendeine Möglichkeit vielleicht das newline Kommando \n auf irgendetwas anderes zu setzen? Oder allgemein irgendeine andere Möglichkeit "\newkomavar" in die .tex Datei zu schreiben?

Ich habe noch print ("\newkomavar", file=file) versucht, kam aber leider zum gleichen Ergebnis.

Alternativ war meine Idee es umständlich in zwei Instanzen zu schreiben, also: file.write("\") und dann file.write("newkomavar") aber das funktioniert leider auch nicht, da "\" wohl kein abgeschlossener String ist?

Vielleicht kann mir ja jemand weiter helfen
Vielen Dank für eure Hilfe

Re: Latex mit Phyton verwenden newline \n verändern?

Verfasst: Sonntag 18. November 2018, 13:22
von __deets__
Das was du suchst nennt sich "string-escapes" und ist hier beschrieben: https://docs.python.org/3/reference/lex ... s-literals

Long story short: wenn du \ in ein String-Literal bekommen willst, musst du \\ benutzen. Und natuerlich kannst du das auch in einem einzigen String tun:

print("\\newkomavar")

Re: Latex mit Phyton verwenden newline \n verändern?

Verfasst: Sonntag 18. November 2018, 13:54
von Lance
Perfekt, Vielen Dank!
Das hat funktioniert. Was das genau ist, werde ich mir dann auch mal durchlesen.

Re: Latex mit Phyton verwenden newline \n verändern?

Verfasst: Dienstag 27. November 2018, 12:34
von Hase
Hallo Lance,

die Frage ist ja schon beantwortet. Nur ein Hinweis vom mir: wenn es nicht nur um eine einzelnes, sehr kurze LaTeX-Dokumente geht ist es m.E. immer sinnvoll, einen Template Engine wie z.B. Jinja2 zu benutzen, statt den LaTeX-Code direkt aus Python heraus zu erzeugen. Das ist deutlich einfacher zu testen und zu warten. Es erfordert eine einmalige Anpassung in Jinja2, aber dann flutscht es.