Wie kann die letzte Spalte auf die Textbreite - ähnlich der Open in Online-Editor
\documentclass[DIV=20]{scrartcl} \usepackage{tikz} \usetikzlibrary{matrix} \tikzset{ raster/.style={ matrix of nodes, row sep=-\pgflinewidth, column sep=-\pgflinewidth, nodes={ rectangle, draw=black, align=left, }, minimum height=2em, text depth=0.5ex, text height=2ex, nodes in empty cells, column 1/.style={ nodes={text width=width{"Nr."}} }, column 2/.style={ nodes={text width=width{"Testtext"}} }, column 3/.style={ nodes={text width=width{"Namen"},fill=gray!30} }, column 4/.style={ nodes={text width=10em} }, column 5/.style={ nodes={text width=0.3\linewidth,align=center} % auf Textbreite austreiben }, row 1 column 1/.style={ nodes={fill=gray!30} }, row 1 column 2/.style={ nodes={fill=gray!30} }, row 1 column 5/.style={ nodes={fill=gray!30} }, } } \thispagestyle{empty} \begin{document} \noindent% \begin{tikzpicture}[outer sep=auto] \matrix [raster] { Nr. & Testtext & Namen & & Xyz \\ & & Vorn. & & \\ }; \end{tikzpicture} \noindent\rule{\textwidth}{0.4pt} \end{document} |
Wenn die Tabelle die ganze Textbreite einnehmen soll, muss zuerst der innere Abstand der Matrix entfernt werden. Deshalb wird Allerdings wird damit auch der innere Abstand in den Nodes entfernt und der Text würde an den Trennlinien „kleben“. Deshalb wird er für die Nodes wieder eingefügt, in dem da die Option Jetzt muss nur noch die Textbreite für die letzte Spalte berechnet werden, was für Dein Beispiel nicht zu schwierig ist, da Du ja die Textbreiten für die anderen Spalten von Hand festlegst. Es müssen also nur diese Textbreiten sowie für alle Spalten je zwei Mal der innere Abstand ( Open in Online-Editor
\documentclass[DIV=20]{scrartcl} \usepackage{showframe}% nur zum Anzeigen des Seitenlayouts \usepackage{tikz} \usetikzlibrary{matrix} \tikzset{ raster/.style={ inner sep=0pt,% <- inneren Abstand der Matrix entfernen matrix of nodes, row sep=-\pgflinewidth, column sep=-\pgflinewidth, nodes={ inner sep=.3333em,% <- inneren Abstand bei den Nodes wieder einfügen rectangle, draw=black, align=left, }, minimum height=2em, text depth=0.5ex, text height=2ex, nodes in empty cells, column 1/.style={ nodes={text width=width{"Nr."}} }, column 2/.style={ nodes={text width=width{"Testtext"}} }, column 3/.style={ nodes={text width=width{"Namen"},fill=gray!30} }, column 4/.style={ nodes={text width=10em} }, column 5/.style={ nodes={ text width= % Breite der letzten Spalte berechnen \linewidth -10em-width{"Namen"}-width{"Testtext"}-width{"Nr."} -10*\pgfkeysvalueof{/pgf/inner xsep} -2*\pgfkeysvalueof{/pgf/outer xsep} ,align=center} % auf Textbreite austreiben }, row 1 column 1/.style={ nodes={fill=gray!30} }, row 1 column 2/.style={ nodes={fill=gray!30} }, row 1 column 5/.style={ nodes={fill=gray!30} }, } } \thispagestyle{empty} \begin{document} \noindent% \begin{tikzpicture}[outer sep=auto] \matrix [raster] { Nr. & Testtext & Namen & & Xyz \\ & & Vorn. & & \\ }; \end{tikzpicture} \noindent\rule{\textwidth}{0.4pt} \end{document} Ich habe jetzt zusätzlich beantwortet 03 Feb '16, 23:28 esdd Die Lösung funktioniert ausgezeichnet! Warum wird der
(04 Feb '16, 13:00)
fritz
|
Willkommen auf TeXwelt!