Wie man im Beispiel sieht, ragen die große Zahlen über die definierte p-Spaltenbreite hinaus. Wie erreicht man, daß die Länge des größten Elements in der Spalte gemessen wird und an die Spaltenbreite in der Tabellenpräamble zurückgegeben wird, sodaß im wiederholten LaTeX-Durchlauf die Breite der zweiten Spalte angepasst wird? Die p-Definition soll beibehalten werden. Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{longtable} \begin{document} \begin{longtable}{p{2cm}p{2cm}p{2cm}} \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000&300\\ 100&2000000000000000000&300\\ \end{longtable} \end{document} gefragt 03 Nov '14, 23:50 ctansearch |
Das ganze funktioniert sehr einfach, wenn man nicht darauf besteht, die Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[german]{babel}% Geändert, da der Fragesteller offenbar alte Rechtschreibung bevorzugt. \usepackage[utf8]{inputenc} \usepackage{ltablex}% Geändert, da die Lösung so einfacher ist. \begin{document} \begin{tabularx}{\textwidth}{XXX}% Geändert, da die Lösung so einfacher ist. \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000&300\\ 100&2000000000000000000&300\\ \end{tabularx}% Geändert. \end{document} Auch eine Mindestbreite der Spalten ist dabei erreichbar, beispielsweise mit: Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[german]{babel}% Geändert, da der Fragesteller offenbar alte Rechtschreibung bevorzugt. \usepackage[utf8]{inputenc} \usepackage{ltablex}% Geändert, da die Lösung so einfacher ist. \begin{document} \begin{tabularx}{\textwidth}{XXX}% Geändert, da die Lösung so einfacher ist. \makebox[2cm][l]{\textbf{Erste}}&\makebox[2cm][l]{\textbf{Zweite}}&\makebox[2cm][l]{\textbf{Dritte}}\\% Geändert für die Mindestbreite \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000&300\\ 100&2000000000000000000&300\\ \end{tabularx}% Geändert. \end{document} oder: Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[german]{babel}% Geändert, da der Fragesteller offenbar alte Rechtschreibung bevorzugt. \usepackage[utf8]{inputenc} \usepackage{ltablex}% Geändert, da die Lösung so einfacher ist. \begin{document} \begin{tabularx}{\textwidth}{XXX}% Geändert, da die Lösung so einfacher ist. \multicolumn1{p{2cm}}{\textbf{Erste}} & % Geändert für die Mindestbreite \multicolumn1{p{2cm}}{\textbf{Zweite}} & % -"- \multicolumn1{p{2cm}}{\textbf{Dritte}} \\ % -"- \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000&300\\ 100&2000000000000000000&300\\ \end{tabularx}% Geändert. \end{document} Ich gebe natürlich zu, dass das nicht die Frage beantwortet, da ich eben die Will man das ganze unbedingt mit Auf der anderen Seite ist es vielleicht doch eine Antwort, denn genau genommen sind Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[german]{babel}% Geändert, da der Fragesteller offenbar alte Rechtschreibung bevorzugt. \usepackage[utf8]{inputenc} \usepackage{ragged2e,ltablex}% Geändert, da die Lösung so einfacher ist. \begin{document} \begin{tabularx}{\textwidth}{X>{\RaggedRight}XX}% Geändert, da die Lösung so einfacher ist. \multicolumn1{p{2cm}}{\textbf{Erste}} & % Geändert für die Mindestbreite \multicolumn1{p{2cm}}{\textbf{Zweite}} & % -"- \multicolumn1{p{2cm}}{\textbf{Dritte}} \\ % -"- \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000\\42&300\\ 100&2000000000000000000&300\\ \end{tabularx}% Geändert. \end{document} Hier automatisch: Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[german]{babel}% Geändert, da der Fragesteller offenbar alte Rechtschreibung bevorzugt. \usepackage[utf8]{inputenc} \usepackage{ltablex}% Geändert, da die Lösung so einfacher ist. \usepackage{mwe}% Eingefügt für den Fülltext des automatischen Umbruchs. \begin{document} \begin{tabularx}{\textwidth}{XXX}% Geändert, da die Lösung so einfacher ist. \multicolumn1{p{2cm}}{\textbf{Erste}} & % Geändert für die Mindestbreite \multicolumn1{p{2cm}}{\textbf{Zweite}} & % -"- \multicolumn1{p{2cm}}{\textbf{Dritte}} \\ % -"- \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000&300\\ 100&\blindtext&300\\% Geändert zur Demonstration des automatischen Umbruchs \end{tabularx}% Geändert. \end{document} Man kann das auch noch mit dem Paket Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[german]{babel}% Geändert, da der Fragesteller offenbar alte Rechtschreibung bevorzugt. \usepackage[utf8]{inputenc} \usepackage{ltablex} \usepackage{environ} \makeatletter \NewEnviron{mincolwidth}[1]{% \setbox\@tempboxa\hbox{\BODY}% \ifdim\wd\@tempboxa<#1 \hbox to #1{\BODY\hfil}% \else \BODY \fi } \makeatother \newcolumntype{P}[1]{>{\begin{mincolwidth}{#1}}X<{\end{mincolwidth}}} \begin{document} \begin{tabularx}{\textwidth}{p{2cm}P{2cm}p{2cm}} \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&200000000000000&300\\ 100&200000000000000&300\\ \end{tabularx} \end{document} Achtung: Solche Spalten mit Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[german]{babel}% Geändert, da der Fragesteller offenbar alte Rechtschreibung bevorzugt. \usepackage[utf8]{inputenc} \usepackage{ltablex} \usepackage{environ} \makeatletter \NewEnviron{mincolwidth}[1]{% \setbox\@tempboxa\hbox{\BODY}% \ifdim\wd\@tempboxa<#1 \hbox to #1{\BODY\hfil}% \else \BODY \fi } \makeatother \newcolumntype{P}[1]{>{\begin{mincolwidth}{#1}}X<{\end{mincolwidth}}} \usepackage{mwe} \begin{document} \begin{tabularx}{\textwidth}{p{2cm}P{2cm}p{2cm}} \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&\blindtext&300\\ 100&200000000000000&300\\ \end{tabularx} \end{document} beantwortet 04 Nov '14, 08:04 gast3 |
Mir ist jetzt nicht klar, warum Du keine Wie @Ulrike als Kommentar geschrieben hat, stellt Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage{longtable} \usepackage{eqparbox} \begin{document} \begin{longtable}{p{2cm}lp{2cm}} &\hspace*{2cm}\kill \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200&300\\ 100&200&300 \end{longtable} \begin{longtable}{p{2cm}lp{2cm}} &\hspace*{2cm}\kill \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000&300\\ 100&2000000000000000000&300 \end{longtable} \end{document} Ergebnis: Wenn in der Spalte außerdem ein manueller Zeilenumbruch möglich sein soll, dann wäre die Nutzung des Pakets Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage{longtable} \usepackage{eqparbox} \begin{document} \eqsetminwidth{ltsp1}{2cm}% Mindestbreite 2cm \begin{longtable}{p{2cm}>{\begin{eqminipage}[t]{ltsp1}}l<{\strut\end{eqminipage}}p{2cm}} \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200\newline 250&300\\ 100&200&300 \end{longtable} \eqsetminwidth{ltsp2}{2cm}% Mindestbreite 2cm \begin{longtable}{p{2cm}>{\begin{eqminipage}[t]{ltsp2}}l<{\strut\end{eqminipage}}p{2cm}} \textbf{Erste}&\textbf{Zweite}&\textbf{Dritte}\\ \endhead A&B&C\\ 100&200&300\\ 100&200&300\\ 100&2000000000000000000\newline 10&300\\ 100&2000000000000000000&300 \end{longtable} \end{document} Darüber hinaus stellt das Paket auch noch den Befehlt beantwortet 05 Nov '14, 01:05 esdd Ich lösche den langen Kommentarstrang.
(11 Nov '14, 13:39)
ctansearch
@ctansearch auch wenn ich nicht mitkommentiert habe, finde ich es nicht gut, eine offene Diskussion einfach ohne Vorankündigung zu löschen. Im Sinne der Höflichkeit sollte man meines Erachtens doch seinen Mitdiskutierern die Gelegenheit zur Reaktion bieten, bevor man ihre Beiträge einfach löscht, findest Du nicht?
(11 Nov '14, 13:53)
cgnieder
@ctansearch Ich hätte bei meinen eigenen Kommentaren gern selbst entschieden, ob und welche gelöscht werden. Ich bin mir auch sicher, dass ich mindestens einen der Kommentare gern behalten hätte. Leider hast Du mir keine Zeit gelassen, Dir das mitzuteilen. Bitte kündige Löschaktionen vorher an und lösche frühestens nach 24 Stunden.
(11 Nov '14, 14:06)
esdd
@ctansearch: Ich finde es nicht nur unhöflich sondern schlicht unverschämt meine Kommentare einfach in die Tonne zu klopfen. Mach das nie wieder, wenn du von mir je wieder eine Reaktion auf eine deiner Fragen haben willst.
(11 Nov '14, 14:20)
Ulrike Fischer
Sorry, ich dachte, Kommentare wären wiederherstellbar.
(11 Nov '14, 14:32)
ctansearch
|