Wie erreiche ich es, dass eine Tabelle genau so breit ist, wie der Text im restlichen Dokument? Ich kann mit Oder mache ich das besser auf einem ganz anderen Weg? Nachfolgend ein Tabellen-Beispiel ...
|
Für sowas eignet sich unter anderen das Paket tabularx
Pff - ich war zu langsam ;)
(27 Jun '13, 19:41)
cgnieder
@Clemens tabu sollte das doch auch können, oder? Ich hab damit noch nie gearbeitet. Du könntest was dazu schreiben?
(27 Jun '13, 20:01)
Johannes
2
@Johannes:
(27 Jun '13, 20:13)
Herbert
@clemens @Herbert Wenn ich mich richtig erinnere arbeitet der Autor an einer neuen Implementierung (etliches auf comp.text.tex). Wie ich die Sache deute wird sich damit auch die Arbeitsweise/Syntax ändern. Insofern sollten wir das (momentan noch) nicht aufnehmen. Gilt
(27 Jun '13, 20:24)
Johannes
@Herbert Das ist dann wohl an mir vorbeigegangen. Aber das mit der neuen Version hab ich doch richtig in Erinnerung (nur so für die Datenbank im Kopf)?
(27 Jun '13, 20:36)
Johannes
Weil die Quelle bisher fehlte: https://groups.google.com/d/msg/comp.text.tex/xRGJTC74uCI/jkNlDkpG5cMJ (GL ist Florent Chervet, der Autor von
(24 Jan '14, 23:04)
Speravir
Ergebnis 5 von 8
show 3 more comments
|
Alternativ, falls du deine Spaltentypen nicht verändern willst und die Tabelle nur etwas zu breit ist.
Nachteil ist allerdings, dass die Linien ebenfalls mit skaliert werden. |
Ohne weiter in's Detail zu gehen wäre es zu wünschen, wenn die Umgebungen und Pakete, die sich mit Tabellen befassen, die Spaltenbreiten alternativ und immer als zwei mögliche Werte definieren würden. Zur Lösung des Problems würde sich
eignen. Der Teilbetrag von Dieses Beispiel sähe dann etwas komisch aus.
(28 Jun '13, 09:51)
André
Bitte lese die FAQ. Wenn du Fragen dazu hast, wäre dies eine sinnvolle Frage. Dein Beitrag hier ist weder eine Antwort noch eine richtige Frage. Somit maximal ein Kommentar! -- Das deine "Lösung" suboptimal ist, sollte dir spätestens dann klar werden, wenn du dir dir Werte von
(28 Jun '13, 12:39)
Marco_D
Wovon sprichst Du? Da sind keine Werte von \tabcolsep in meinem Beispiel und auch nicht im Ausgangsbeispiel. Auch in .aux ist alles in Ordnung. Im übrigen ist longtable die Antwort auf dieses Problem, und beantwortet die Frage direkt.
(28 Jun '13, 23:40)
ctansearch
Natürlich kann man jede Spalte einzeln gestalten, indem man den Betrag von \textwidth anpasst (0.2\textwidth.. 0.1\textwidth.. etc) oder auf (1em..2em ..etc) umstellt.
(29 Jun '13, 00:14)
ctansearch
2
@ctansearch:
(29 Jun '13, 10:14)
Marco_D
Achso, ja das ist klar, die Breiten muß man halt einfach "mitdenken" wenn man die Spaltenbreite angibt. Das kann man ja per Augenmaß anpassen, korrekt wäre natürlich, wenn man diese Abstände mitberechnet.
(29 Jun '13, 20:46)
ctansearch
@ctansearch: Natürlich kann man die Werte händisch anpassen -- elegant ist das aber nicht. (La)TeX steht ja eigentlich für elegante Lösungen. Da bieten sich Automatismen, wie oben genannt, eher an. (Aber im Gegensatz zu Marco Daniel denke ich schon, dass es sich um eine Antwort hält ;-))
(29 Jun '13, 22:52)
André
@André Klar, Automatismen sind besser. Da könnte man eine \maxtablewidth definieren, die \textwidth jeweils um den Betrag der \tabcolsep-Summe (\tabcolsepxSpaltenanzahlx2) vermindert.\tabcolsep wird ja dann automatisch wieder zugefügt. Finde ich aber etwas umständlich. (Nebenbei: Ich habe Probleme, Deine Adresse (@Andre) zu schreiben, könntest Du auf den Accent verzichten oder mir sagen, wie man das richtig eingibt?)
(29 Jun '13, 23:20)
ctansearch
Ergebnis 5 von 8
show 3 more comments
|
In der Tat bietet LaTeX selbst bereits für eben diesen Zweck die im Zeitalter von Eine einfache Abänderung Deines eigenen Beispiels wäre also: Open in Online-Editor
\documentclass{scrartcl} \usepackage[utf8]{inputenc} \usepackage{booktabs} \begin{document} \begin{table}[htb] \caption{Eine Tabelle} \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}*8l@{}} \toprule Spalte1 & Spalte2 & Spalte3 & Spalte4 & Spalte5 & Spalte6 & Spalte7 & Spalte8 \\ \midrule AA & BB & CC & DD & EE & FF & GG & HH \\ AA & BB & CC & DD & EE & FF & GG & HH \\ \bottomrule \end{tabular*} \end{table} \noindent\rule{\textwidth}{1pt} Die Textbreite entspricht der Linie über diesem Text. \end{document} Dabei habe ich außerdem den Wiederholungsoperator Open in Online-Editor
\documentclass{scrartcl} \usepackage[utf8]{inputenc} \usepackage{booktabs} \begin{document} \begin{table}[htb] \caption{Eine Tabelle} \begin{tabular*}{\linewidth}{@{}l@{\extracolsep{\fill}}*6l@{\extracolsep{0pt}\hskip2\tabcolsep}l@{}} \toprule Spalte1 & Spalte2 & Spalte3 & Spalte4 & Spalte5 & Spalte6 & Spalte7 & Spalte8 \\ \midrule AA & BB & CC & DD & EE & FF & GG & HH \\ AA & BB & CC & DD & EE & FF & GG & HH \\ \bottomrule \end{tabular*} \end{table} \noindent\rule{\textwidth}{1pt} Die Textbreite entspricht der Linie über diesem Text. \end{document} Ob im jeweiligen Fall eher Möchte man den Abstand zwischen Rand und erster bzw. letzter Spalte (
(29 Jul '13, 20:36)
Qrrbrbirlbel
1
@Qrrbrbirlbel Man muss nicht, sondern man kann. Man kann es auch so machen, wie ich im letzten Beispiel gezeigt habe, also
(30 Jul '13, 09:18)
saputello
(27 Aug '15, 15:55)
André
|