Einstellen der Umrandung in der Matrix Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


qwert
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 8. Jul 2021, 21:23

Einstellen der Umrandung in der Matrix

Beitrag von qwert »

Moin zusammen, ich habe mit einer Vorlage aus dem Internet eine zielpräferenzmatrix erstellt. Allerdings hab ich noch das Problem, dass sich die dicke Umrandung weder ausstellen noch auf alle Zeilen ausdehnen lässt. Hat da jemand vielleicht einen Tipp? Vielen Dank im Voraus.

Dateianhänge
Präferenzmatrix.tex
(2.79 KiB) 15-mal heruntergeladen

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2334
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Einstellen der Umrandung in der Matrix

Beitrag von Bartman »

Wenn Du Dein Beispiel vervollständigst und dessen Quelltext markierst, können die Leser es gleich hier im Forum testen.

Setze die betreffende Schleife als Kommentar oder entferne sie, wenn Du die Umrandungen entfernen möchtest. Die Ausdehnung der Rechtecke kannst Du über die Zeilennummer im Namen einer Zelle der Matrix anpassen.

Unabhängig davon, ob Du Bereiche der Matrix mit Umrandungen hervorhebst, habe ich mir erlaubt, einige Änderungen vorzunehmen:

\documentclass[tikz]{standalone}
\usetikzlibrary{matrix}

\colorlet{mbg}{red!20}
\colorlet{mbb}{cyan!20}
\colorlet{mbs}{yellow!50}

\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=none},font=\sffamily\bfseries},% erste Zeile
      mbbspalte/.style={% Einstellungen für die ersten 4 Spalten
        minimum width=#1,% text width ersetzt
        font=\sffamily,
        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.")+2pt,font=\ttfamily},
      column 5/.style={
        minimum width=width("Das ist ein Testkriterium")+2pt,% text width ersetzt
        font=\sffamily
      },
%      row 22/.style={% letzte Zeile mit anderer Farbe gefüllt
%        every even row/.style={nodes={fill=mbs}}
%      },
    ]
  {% überall dort wo ein Node sein soll, muss wenigstens {} stehen
    Rang&Gewicht&Anzahl &Nr.& Bewertungskriterium \\
    {1}&{0,1818}&{10}&a&Barrierefreiheit\\
      &  &  & &                         &{a}\\
    {7}&{0,0727}&{4}&b&Produktionskosten&  &{a}\\
      &  &  & &                         &{c}&  &{a}\\
    {3}&{0,1454}&{8}&c&Ergonomie&  &{d}&  &{a} \\
      &  &  & &                         &{d}&  &{b}&  &{a}\\
    {2}&{0,1636}&{9}&d&Gewicht&  &{c}&  &{b}& &{a}\\
      &  &  & &                         &{d}&  &{c}&  &{g}&  &{a}\\
    {8}&{0,0545}&{3}&e&Fertigungsgerechtigkeit&  &{d}&  &{c}&  &{b}&  &{a} \\ 
      &  &  & &                         &{e}&  &{d}&  &{c}&  &{i}&  &{a}\\
    {9}&{0,0181}&{1}&f&Montage&  &{g}&  &{d}&  &{c}&  &{b}&  &{a} \\ 
      &  &  & &                         &{g}&  &{e}&  &{d}&  &{c}&  &{k}\\
    {5}&{0,1091}&{6}&g&Instandhaltung&  &{f}&  &{i}&  &{d}&  &{c} \\
      &  &  & &                         &{g}&  &{i}&  &{e}&  &{d}\\
    {9}&{0,0181}&{1}&h&Betriebskosten&  &{g}&  &{j}&  &{k} \\
      &  &  & &                         &{i}&  &{g}&  &{k}\\
    {6}&{0,0909}&{5}&i&Nachhaltigkeit&  &{h}&  &{k} \\
      &  &  & &                         &{i}&  &{k}\\
    {9}&{0,0181}&{1}&j&Brandschutzpotenzial&  &{k} \\
     &  &  & &                         &{k}\\
    {4}&{0,1272}&{7}&k&Lebensdauer\\[1ex]
      &{0,9995}&{55}\\
  };
  % 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}
Zuletzt geändert von Bartman am Sa 10. Jul 2021, 16:22, insgesamt 1-mal geändert.

qwert
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 8. Jul 2021, 21:23

Re: Einstellen der Umrandung in der Matrix

Beitrag von qwert »

Vielen Dank für deine Hilfe, das Problem mit dem Ganzen ist, dass ich nicht verstehe wo man diese fette Umrandung ändern kann. Da ja nirgends die Zahl der Zeilen festgelegt wird, die umrandet werden soll. Das lässt mich verzweifeln.


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2334
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Einstellen der Umrandung in der Matrix

Beitrag von Bartman »

Im Abschnitt 59.1 "Matrices of Nodes" der Dokumentation von TikZ wird erklärt, wie die Zeilen- und Spaltennummern gesetzt werden.

Soll die Umrandung z. B. alle Zeilen bis einschließlich der Zeile des Bewertungskriteriums "Lebensdauer" umgeben, dann müsstest Du die folgende Änderung tätigen:

  \foreach \c in {1,...,4}% für die ersten vier Spalten
    \draw(m-1-\c.north west)rectangle
      ([yshift=\pgflinewidth,xshift=-\pgflinewidth]m-22-\c.south east);% Zeilennummer geändert

qwert
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 8. Jul 2021, 21:23

Re: Einstellen der Umrandung in der Matrix

Beitrag von qwert »

Ja vielen Dank, jetzt hat es funktioniert.


Antworten