ich möchte mit Python und einem Jinja2 Tempalte ein Latex-File erstellen. Dazu habe ich mir ein kleinen Prototypen erstellt, der ein Array besitzt und dies in eine sehr vereinfachte Latex-tabelle fassen soll. Das Thema ist nun für mich, wie verhindere ich, dass am ende des Tabellezeile das trennende &-Zeichen nicht gesetzt wird, sondern nur zwischen den "Elementen/Zellen?
Ich habe es mit einem Counter probiert an dem ich dann eine if Bedingung im Template setzen wollte. Leider wird dieser nicht bis 2 im Template gezählt sondern nur bis 1.
Code: Alles auswählen
import os
import jinja2
import time
import subprocess
import os
def render(tpl_path, context):
path, filename = os.path.split(tpl_path)
return jinja2.Environment(
loader=jinja2.FileSystemLoader(path or './')
).get_template(filename).render(context)
arrays=[["Ring", "Pinkring12","1 Stück", "15"], ["Kette", "Tollekette","2 Stück", "25"], ["Collier", "Tolle Collier","3 Stück", "25"]]
context = {
'arrays': arrays
}
result = render('template.j2', context)
print(result)
{% endfor %}
[/code]
Das ist das Resultat aus dem obigen Skript und dem Template. Wie zu erkennen ist, wird der Counter nur um 1 erhöht statt auf 2 (drei Elemente je innerem Array). Und das eigentliche Problem ist dass ich das letzte &-Zeichen einer Zeilen nicht gesetzt haben möchte. Evtl gibt es einen besseren Weg, als das über irgendwelche Counter zu lösen.
Was raus kommt ( Vorgesetzte 1 wie bei 1 13 ergibt sich aus der Ausgabe von {{ counter }})
[codebox=text file=Ausgabe.txt]
Ring & 1 Pinkring12 & 1 1 Stück & 1 15 & 1 \\
Kette & 1 Tollekette & 1 2 Stück & 1 25 & 1 \\
Collier & 1 Tolle Collier & 1 3 Stück & 1 25 & 1 \\
[/code]
Was ich haben möchte:
[codebox=text file=Unbenannt.txt] Ring & Pinkring12 & 1 Stück & 15 \\
Kette & Tollekette & 2 Stück & 25 \\
Collier & Tolle Collier & 3 Stück & 25 \\[/code]
VG niesel