Zwei Spalten so breit, wie die breiteste der beiden.

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Zwei Spalten so breit, wie die breiteste der beiden.

Re: Zwei Spalten so breit, wie die breiteste der beiden.

von ich meine ja nur » Di 23. Aug 2022, 09:56

Achso: Bei Verwendung von longtable kann man stattdessen des Konstrukts mit \makebox[0pt][l]{…}\hphantom{…} auch eine \kill-Zeile mit dem zuvor ermittelten breitesten Element als Musterzeile verwenden. Das ist dann eigentlich noch einfacher.

Re: Zwei Spalten so breit, wie die breiteste der beiden.

von ich meine ja nur » Di 23. Aug 2022, 09:52

Bei einer CSV-Datei kannst du ja problemlos eine Vorverarbeitung z. B. mit datatool durchführen und dabei in einer Schleife über all Einträge den längsten mit Hilfe von \settowidth ermitteln. Den kannst du dann wie im Beispiel oben im Kopf aller relevanten Spalten einsetzen.

Re: Zwei Spalten so breit, wie die breiteste der beiden.

von pre » Di 23. Aug 2022, 08:58

Ja, das soll schon etwas umfangreicher sein. In einem nächsten Schritt möchte ich das Ganze über eine csv-Datei befüllen und massenhaft verarbeiten. Verständlich, dass da vielen hier die Motivation für meinen Sonderfall fehlt. Ich versuche mir das selbst mal anzuschauen. Trotzdem vielen Dank für Eure Hinweise!

Re: Zwei Spalten so breit, wie die breiteste der beiden.

von KOMA » Mo 22. Aug 2022, 18:42

pre hat geschrieben:
Mo 22. Aug 2022, 14:34
Den breitesten Eintrag kenne ich eben gerade nicht. Ich hätte gerne, dass sich die Tabelle flexibel in Bezug auf die Einträge verhält. Dann könnte ich sie später mit beliebigen Werten befüllen, ohne jedes Mal anpassen zu müssen.
Dazu müsste man die Tabelle mehrfach verarbeiten, um zunächst die breiteste Spalte bzw. das breiteste Element zu finden. Vermutlich könnte man eine Library für tabularray schreiben, die das tut. Das Paket arbeitet ja LaTeX3-basiert statt mit herkömmlichen Tabellen. Auf jeden Fall müsste man dazu recht tief einsteigen. Der Aufwand ist damit so hoch, dass es sich nur lohnt, wenn man das oft braucht und es nicht zumutbar ist, das Element, das die Breite bestimmt, selbst zu ermitteln. Für einen Helfer, der das überhaupt nicht braucht, lohnt sich das noch viel weniger. Sorry, aber da fehlt dann nicht nur mir die Motivation.

Re: Zwei Spalten so breit, wie die breiteste der beiden.

von pre » Mo 22. Aug 2022, 14:34

Den breitesten Eintrag kenne ich eben gerade nicht. Ich hätte gerne, dass sich die Tabelle flexibel in Bezug auf die Einträge verhält. Dann könnte ich sie später mit beliebigen Werten befüllen, ohne jedes Mal anpassen zu müssen.
Trotzdem aber vielen Dank für den Hinweis auf das Paket siunitx, das schaue ich mir gerne mal an! 8)

Re: Zwei Spalten so breit, wie die breiteste der beiden.

von Gute*r Gȧst*in » Mo 22. Aug 2022, 14:14

Wenn du den breitesten Eintrag kennst, kannst du das mehr oder weniger manuell lösen:
\documentclass{article}

\begin{document}

\begin{tabular}{lrc|clr}
	\multicolumn{3}{l@{\makebox[0pt]{\textbf{Bank}}}}{\textbf{S}}  &&&
	\multicolumn{1}{r}{\textbf{H}} \\
	\hline
	\ &    &&&   & \\ 
	Anfangsbestand (AB) &   &&&  \makebox[0pt][l]{Abgänge}\hphantom{Anfangsbestand (AB)} &  \\        
\end{tabular}

\end{document}
Vorsorglich sei darauf hingewiesen, dass sich für Spalten mit Zahlenwerten das Paket siunitx anbietet. Bei Bedarf kann das Paket alle Zahlenwerte mit einer bestimmten Anzahl an Nachkommastellen anzeigen. Außerdem sind Tausendertrennzeichen, Dezimaltrenner (Punkt oder korrekt formatiertes Komma) etc. konfigurierbar.

Zwei Spalten so breit, wie die breiteste der beiden.

von pre » Mo 22. Aug 2022, 12:15

Hallo zusammen,

ich versuche gerade ein T-Konto in Latex darzustellen. Dafür habe ich bereits eine Ausgabe, mit der ich noch nicht ganz zufrieden bin. Am Beispiel ist zu erkennen, dass die linke Spalte aufgrund des langen Wortes "Anfangsbestand (AB)" sehr viel breiter ist, als die rechte Spalte, in der "Abgänge" steht. Dadurch sieht nun das T-Konto unschön aus. Wie schaffe ich es, dass diese beiden Spalten immer genauso breit sind, wie das längste Wort in einer dieser beiden Spalten?
Ich möchte gerne auf feste Spaltenbreiten verzichten, damit ich das T-Konto nicht jedes Mal neu anpassen muss.

Hier ist mein Code soweit, vielen Dank schonmal für die die Hilfe!
\begin{tabular}{lrc|clr}
	\multicolumn{3}{l@{\protect\makebox[0pt]{\textbf{Bank} }}}{\textbf{S}}  &&&
	\multicolumn{1}{r}{\textbf{H}} \\
	\hline
	\ &    &&&   & \\ 
	Anfangsbestand (AB) &   &&&   Abgänge &  \\        
\end{tabular}

Nach oben