ich möchte gerne eine präferenzmatrix mit erstellen wie auf dieser seite ich habe auch schon etwas begonnen Open in writeLaTeX
\documentclass[12pt]{article} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{matrix, positioning} \begin{document} \begin{tikzpicture}[ cell/.style={rectangle,draw=black}, space/.style={minimum height=1.5em, matrix of nodes, row sep=-\pgflinewidth, column sep=-\pgflinewidth, column 1/.style={font=\ttfamily}}, text depth=0.5ex, text height=2ex, nodes in empty cells ] \matrix (m) [ matrix of nodes, %row sep=-\pgflinewidth, % Liniendicke column 1/.style={nodes={cell, minimum width=4em}}, column 2/.style={nodes={cell, minimum width=4em}} ] { \textbf{Nr.} & \textbf{Bewertungskriterium} \\ a & Das ist ein Testkriterium \\ b & Das ist ein Testkriterium \\ c & Das ist ein Testkriterium \\ d & Das ist ein Testkriterium \\ e & Das ist ein Testkriterium \\ }; \end{tikzpicture} \end{document} gefragt 22 Okt '14, 20:03 Giovario |
Hier ist ein Vorschlag, wie man das lösen könnte. Dabei werden alle nicht leeren Zellen mit bestimmten Farben gefüllt, weshalb in diesen wenigstens Update: Entsprechend dem Kommentar von @Ijon Tichy wird zur Bestimmung der benötigten Spaltenbreiten jetzt die Öffne in Overleaf
\documentclass[margin=5pt]{standalone} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{matrix,babel} \usepackage[ngerman]{babel} \colorlet{mbg}{lightgray!50} \colorlet{mbb}{blue!15} \colorlet{mbs}{green!10} \begin{document} \begin{tikzpicture}[ text depth=0.7ex, text height=2.3ex, ] \matrix (m) [ matrix of nodes, row sep=0pt, column sep=0pt, minimum width=3ex, text depth=.5ex, text height=2ex, inner sep=.25ex, nodes={fill=mbg}, font=\ttfamily, align=center, row 1/.style={nodes={fill=white},font=\bfseries},%erste Zeile mbbspalte/.style={%Einstellungen für die ersten 4 Spalten text width=#1, font=\rmfamily, every even row/.style={nodes={fill=mbb}} }, column 1/.style={mbbspalte=1.25*width("Rang")}, column 2/.style={mbbspalte=1.25*width("Gewicht"),column sep=1ex}, column 3/.style={mbbspalte=1.25*width("Anzahl"),column sep=1ex}, column 4/.style={mbbspalte=1.25*width("Nr."),font=\ttfamily}, column 5/.style={text width=width("Das ist ein Testkriterium")+2pt,font=\rmfamily}, row 11/.style={nodes={fill=mbs}},%letzte Zeile mit anderer Farbe gefüllt ] {% überall dort wo ein Node sein soll, muss wenigstens {} stehen Rang&Gewicht&Anzahl&Nr.& Bewertungskriterium \\ {}&{}&{}&a&Das ist ein Testkriterium\\ & & & & &{}\\ {}&{}&{}&b&Das ist ein Testkriterium& &{}\\ & & & & &{}& &{}\\ {}&{}&{}&c&Das ist ein Testkriterium& &{}& &{} \\ & & & & &{}& &{}\\ {}&{}&{}&d&Das ist ein Testkriterium& &{} \\ & & & & &{}\\ {}&{}&{}&e&Das ist ein Testkriterium\\[1ex] &{}&{}\\ }; %Umrandungen \foreach \c in {1,...,5}% für erste Zeile \draw(m-1-\c.north west)rectangle ([yshift=\pgflinewidth,xshift=-\pgflinewidth]m-1-\c.south east); \foreach \c in {1,...,4}% für die ersten vier Spalten \draw(m-1-\c.north west)rectangle ([yshift=\pgflinewidth,xshift=-\pgflinewidth]m-10-\c.south east); \end{tikzpicture} \end{document} beantwortet 23 Okt '14, 00:55 esdd Also das sieht echt super aus Danke!! Eine Frage habe ich dazu aber noch. Wie schaffe ich es das die Spalte Bewertungskriterien sich an den Text in den einzelnen Zeilen anpasst. Denn wenn ich mehr als "das ist ein Testkriterium" schreibe gehts in die nächste Zeile.
(23 Okt '14, 19:51)
Giovario
|
Grundsätzlich ist esdd's Antwort der richtige Weg. Bis Öffne in Overleaf
\documentclass[margin=5pt]{standalone} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{matrix,babel} \colorlet{mbg}{lightgray!50} \colorlet{mbb}{blue!15} \colorlet{mbs}{green!10} \begin{document} \begin{tikzpicture}[ text depth=0.7ex, text height=2.3ex, ] \matrix (m) [ matrix of nodes, row sep=0pt, column sep=0pt, minimum width=3ex, text depth=.5ex, text height=2ex, inner sep=.25ex, nodes={fill=mbg}, font=\ttfamily, align=center, row 1/.style={nodes={fill=white},font=\bfseries},%erste Zeile mbbspalte/.style={%Einstellungen für die ersten 4 Spalten text width=#1, font=\rmfamily, every even row/.style={nodes={fill=mbb}} }, column 1/.style={mbbspalte=1.25*width("Rang")}, column 2/.style={mbbspalte=1.25*width("Gewicht"),column sep=1ex}, column 3/.style={mbbspalte=1.25*width("Anzahl"),column sep=1ex}, column 4/.style={mbbspalte=1.25*width("Nr."),font=\ttfamily}, column 5/.style={text width=width("Das ist ein Testkriterium"),font=\rmfamily}, row 11/.style={nodes={fill=mbs}},%letzte Zeile mit anderer Farbe gefüllt ] {% überall dort wo ein Node sein soll, muss wenigstens {} stehen Rang&Gewicht&Anzahl&Nr.& Bewertungskriterium \\ {}&{}&{}&a&Das ist ein Testkriterium\\ & & & & &{}\\ {}&{}&{}&b&Das ist ein Testkriterium& &{}\\ & & & & &{}& &{}\\ {}&{}&{}&c&Das ist ein Testkriterium& &{}& &{} \\ & & & & &{}& &{}\\ {}&{}&{}&d&Das ist ein Testkriterium& &{} \\ & & & & &{}\\ {}&{}&{}&e&Das ist ein Testkriterium\\[1ex] &{}&{}\\ }; %Umrandungen \foreach \c in {1,...,5}% für erste Zeile \draw(m-1-\c.north west)rectangle ([yshift=\pgflinewidth,xshift=-\pgflinewidth]m-1-\c.south east); \foreach \c in {1,...,4}% für die ersten vier Spalten \draw(m-1-\c.north west)rectangle ([yshift=\pgflinewidth,xshift=-\pgflinewidth]m-10-\c.south east); \end{tikzpicture} \end{document} Beachte, dass zusätzlich Library beantwortet 01 Sep '17, 11:02 gast3 @esdd Wenn du das in deiner Antwort korrigierst, werde ich meine Antwort natürlich löschen.
(01 Sep '17, 11:13)
gast3
Wow - nach 3 Jahren innerhalb von wenigen Minuten eine Antwort! Habe 1000 Dank! Das hat mir einiges erspart! Vielen, vielen Dank!!!
(01 Sep '17, 11:32)
BratVogel
|
@Giovario Herzlich willkommen auf der TeXwelt! Super, dass Du gleich ein Minimalbeispiel postest. Ich probier das gern, wenn ich wieder am LaTeX-PC sitze. Zur Info für weitere Leser, das ist ein (finde ich willkommener) Crosspost, ich hole mal den Link zur anderen Site nach, wo bis jetzt noch keine Lösung kam: hier.