Ich benötige eine selbstdefinierte Umgebung, um eine tabularx-Tabelle zu beginnen und zu beenden.
Der Hintergrund ist, dass eine externe Anwendung automatisch eine tex-Datei erstellen soll, die aus einer beliebigen Zahl von Tabellenzeilen besteht (Seitenumbrüche können dabei ausgeschlossen werden). Um den Programmcode wartbar zu halten, ist meine Idee, eine eigene Dokumentenklasse zu erstellen, die eine Umgebung für die Tabelle und einen Befehl für die einzelnen Tabellenzeilen definiert, sodass das Programm abgesehen vom üblichen Dokumentenrahmen nur eine Befehlssequenz nach dem Muster »Anfang der Tabelle, Tabellenzeile 1, Tabellenzeile 2, ..., Tabellenzeile n, Ende der Tabelle«, aber keine sonstigen LaTeX-Befehle in eine Datei schreiben muss. Hierdurch wäre es möglich, sämtliche Formatierungsfragen in die Dokumentenklasse auszulagern.
Das erste Problem dabei ist, dass sich die tabularx-Umgebung nicht in eigene Umgebungen einschachteln lässt. Dies wird in der Paketdokumentation beschrieben, wobei als Ausweg auf die Verwendung von \tabularx statt \begin{tabularx} sowie \endtabularx statt \end{tabularx} verwiesen wird, was auch funktioniert.
Das zweite Problem betrifft den Abschluss der Tabelle durch eine horizontale Linie (vgl. meine verwandte Frage).
Die folgende Lösung produziert zwar keine Fehlermeldung, gibt jedoch nicht die gewünschte abschließende horizontale Linie aus.
Mittlerweile habe eine inhaltsgleiche Frage auf tex.stackexchange gefunden. Allerdings war zum Zeitpunkt der Fragestellung der Entwicklungsstand von tabularx noch ein anderer. Der auf \makeatletter-Trickserei basierende Lösungsvorschlag von D. Carlisle funktioniert aber immerhin.
Die Frage auf tex.sx war wahrscheinlich der Anlass für den neuen Code - nur dass dort ein relax fehlt und es deswegen nicht funktioniert. Wahrscheinlich gibt es ein Update in einigen Tagen.
Laut ctan wurde die letzte Änderung an tabularx am 3. 2. 2016 vorgenommen. Ich weiß nicht, ob sich diese schon auf Ulrikes Meldung bezog, jedenfalls funktioniert die hline auch mit einem aktuellen Update nicht. Daher verwende ich jetzt die von Saputello vorgeschlagene Lösung.
Die Frage wurde aus folgenden Grund "Das Problem ist veraltet und tritt mit der aktuellen Version von tabularx nicht mehr auf." geschlossen
saputello
08 Dez '16, 16:02
Damit kommt das \hline noch vor dem Ende der Tabelle. Nachteil ist, dass es schief geht, wenn das \tabularnewline am Ende der MeineUmgebung fehlt. Aber das dürfte ein eher generelles Problem werden.
Achtung: Das funktioniert nicht, wenn man ltablex statt tabularx verwendet!
Dass die hline verschwindet ist wohl ein Bug. Ich habe es David Carlisle gemeldet.
Mittlerweile habe eine inhaltsgleiche Frage auf tex.stackexchange gefunden. Allerdings war zum Zeitpunkt der Fragestellung der Entwicklungsstand von
tabularx
noch ein anderer. Der auf\makeatletter
-Trickserei basierende Lösungsvorschlag von D. Carlisle funktioniert aber immerhin.Die Frage auf tex.sx war wahrscheinlich der Anlass für den neuen Code - nur dass dort ein relax fehlt und es deswegen nicht funktioniert. Wahrscheinlich gibt es ein Update in einigen Tagen.
Vielen Dank, das wäre sehr erfreulich.
Laut ctan wurde die letzte Änderung an
tabularx
am 3. 2. 2016 vorgenommen. Ich weiß nicht, ob sich diese schon auf Ulrikes Meldung bezog, jedenfalls funktioniert diehline
auch mit einem aktuellen Update nicht. Daher verwende ich jetzt die von Saputello vorgeschlagene Lösung.Mittlerweile funktioniert das wie gewünscht.