Ich möchte die Breite einer Tabelle, die aus der tabular-Umgebung erstellt wird, wissen. Ich weiß, dass diese Breite von dem Tabelleinhalt abhängt, so sie mit dem Inhalt sich variiert. Ich brauche nicht den genauen Wert der Breite der Tabelle wissen. Ich möchte einfach einen Befehl für ihn, wie zum Beispiel gefragt 21 Jan '16, 15:12 fpires |
Wenn es bei der Frage um das Problem geht, das in dem Code-Schnipsel aus dem Link von Johannes Kommentar gezeigt wird, dann braucht man die Breite nicht auszumessen. Mit dem Paket Open in Online-Editor
\documentclass[captions=tableabove]{scrartcl} \usepackage{threeparttable} \begin{document} \begin{table} \centering \begin{threeparttable} \caption{Table Heading} \begin{tabular}{ccc} a & b & c \end{tabular} \end{threeparttable} \end{table} \end{document} Bei sehr schmalen Tabellen, wie im Beispiel, ist das Ergebnis aber eher bescheiden. Man sollte dann min. keine hängenden Tabellenüberschriften wählen: Open in Online-Editor
\documentclass[captions=tableabove]{scrartcl} \setcapindent{0pt} \usepackage{threeparttable} \begin{document} \begin{table} \centering \begin{threeparttable} \caption{Table Heading} \begin{tabular}{ccc} a & b & c \end{tabular} \end{threeparttable} \end{table} \end{document} Die KOMA-Script-Klassen bieten alternativ auch die Möglichkeit, den Tabellentitel neben die Tabelle zu setzen, was bei schmalen Tabellen oft besser aussieht: Open in Online-Editor
\documentclass[captions=tableabove]{scrartcl} \begin{document} \begin{table} \centering \begin{captionbeside}{Table Heading} \begin{tabular}{ccc} a & b & c \end{tabular} \end{captionbeside} \end{table} \end{document} Das Paket Open in Online-Editor
\documentclass{article} \usepackage{threeparttable} \usepackage[tableposition=above]{caption} \begin{document} \begin{table} \centering \begin{threeparttable} \caption{Table Heading} \begin{tabular}{ccc} a & b & c \end{tabular} \end{threeparttable} \end{table} \end{document} beantwortet 22 Jan '16, 09:14 saputello Ich bedanke mich bei euch allen! Eure Antworten haben mich viel geholfen, beziehungsweise das Problem gelöst. Es tut mir leid dafür, einen VM nich gezeigt zu haben. Zum nächsten Mal stelle ich einen. Danke!
(22 Jan '16, 16:15)
fpires
|
Eine einfache Lösung wäre, die Tabelle in eine Box zu packen und ihre Breite zu messen. Open in Online-Editor
\documentclass{article} \newlength\tablewidth \newenvironment{mytabular}[2][c]% {\sbox0\bgroup\begin{tabular}[#1]{#2}}% {\end{tabular}\egroup\global\tablewidth=\wd0 \leavevmode\box0} \begin{document} \begin{mytabular}{ccc} 1 & 2 & 3 \\ a & b & c \\ \end{mytabular} \the\tablewidth \begin{mytabular}[b]{ccp{3em}} 1 & 2 & 3 \\ a & b & c \\ \end{mytabular} \the\tablewidth \end{document} beantwortet 21 Jan '16, 22:09 Henri |
Ich messe diese Werte. Open in Online-Editor
\documentclass[varwidth, border=2pt]{standalone} %\documentclass[paper=a5]{scrartcl} \usepackage{tikz} \begin{document} \newlength{\Breite} \newcommand{\MyTabI}{% \begin{tabular}{ccc} 1 & 2 & 3 \\ a & b & c \\ \end{tabular}% } \MyTabI \\ \settowidth{\Breite}{\MyTabI} \the\Breite \newcommand{\MyTabII}{% \begin{tabular}[b]{ccp{3em}} 1 & 2 & 3 \\ a & b & c \\ \end{tabular}% } \MyTabII \\ \settowidth{\Breite}{\MyTabII} \the\Breite \newcommand{\Linie}{% \tikz[inner sep = 0, outer sep=0]\draw (0,0) -- (15.0pt,0);% } \Linie \\ \settowidth{\Breite}{\Linie} \the\Breite \end{document} beantwortet 22 Jan '16, 01:29 cis |
Willkommen auf TeXwelt.
Bitte beachte, dass das hier ein Frage-Antwort-System ist. Ein solches funktioniert am besten, wenn man uns das eigentliche Problem nennt und möglichst an einem vollständigen Minimalbeispiel zeigt, statt nur eine etwas unscharfe Frage zu einem Problem mit der Lösungsidee des eigentlichen Problems zu stellen. Gerade auch andere Hilfesuchende können an einem Beispiel oft leichter entscheiden, ob es irgendwie zu ihrem eigenen Problem passt.
Eine Länge wie
\textwidth
gibt es dafür nicht. Man kann aber fast alle Arten von Elemente mit\settowidth
,\settoheight
,\settodepth
ausmessen. Allerdings gibt es für einige Probleme, für die man scheinbar die Breite der Tabelle wissen muss, auch ganz andere Lösungen. Auch deshalb wäre ein VM nützlich, das Dein eigentliches Problem zeigt. Wir können dann ggf. daran auch eine fertige Lösung zeigen.Related: http://latex-community.org/forum/viewtopic.php?f=45&t=27049&p=93145#p93145