Farbige Rechtecke mit Schrift in definierter Größe Tikz

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Farbige Rechtecke mit Schrift in definierter Größe Tikz

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von Grummelgast » Mi 9. Jun 2021, 11:18

Nikolas_Tamere hat geschrieben:
Mi 9. Jun 2021, 08:23

Ist es sinnvoll sich https://komascript.de/~mkohm/scrguide.pdf durchzulesen oder ähnliches?

Es ist sinnvoll, die Anleitungen aller verwendeten Klassen und Pakete durchzulesen, vorzugsweise in der Version, die zu der installierten KOMA-Script-Version gehört (siehe dazu die verlinkte Seite). Bei KOMA-Script gibt es alternativ auch noch das Buch (auf der verlinkten Seite gibt es auch hier zusätzliche Infos).

Die andere Frage erübrigt sich, wenn du den entsprechenden Abschnitt zu Optionen in der Anleitung liest. Der ist so wichtig, dass er gleich mehrfach (nämlich angepasst für die einzelnen Pakete) in der Anleitung zu finden ist. Den gar nicht zu lesen, wäre also schon so etwas wie sträflicher Leichtsinn.

von Gast. » Mi 9. Jun 2021, 09:46

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von Nikolas_Tamere » Mi 9. Jun 2021, 08:23

Hallo und danke für die Antwort,

würde das heißen, ich lasse \usepackage[utf8]{inputenc} einfach weg und schreibe die Dokumentklasse in etwa so um:

\documentclass[fontsize=12pt,headsepline=true,paper=a4,BCOR=17mm,headings=normal,captions=tableheading]{scrbook}

und lasse dann wiederum

\KOMAoptions{fontsize=12pt,headsepline=true,paper=a4,BCOR=17mm,headings=normal,captions=tableheading}

weg?!

Inputenc ist ja glaube ich für Umlaute da, wie sieht das dann mit fontenc aus? Sind die europäischen Zeichen auch mit drin oder muss ich fontenc noch laden?

Ist es sinnvoll sich https://komascript.de/~mkohm/scrguide.pdf durchzulesen oder ähnliches?

Gruß

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von Grummelgast » Di 8. Jun 2021, 14:18

Wenn wir schon am Herumkritteln sind: \usepackage[utf8]{inputenc} braucht man seit inzwischen mehr als drei Jahren nicht mehr. Und Optionen wie die Schriftgröße sollte man laut KOMA-Script-Anleitung vorzugsweise bereits beim Laden der Klasse mit angeben.

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von Nikolas_Tamere » Di 8. Jun 2021, 13:06

Hallo und vielen Dank für die Antwort!

Ich habe das dank dir hinbekommen!!!

Das saubere Arbeiten fällt mir tatsächlich noch etwas schwer mit Latex. Das ist meine erste Arbeit damit, daher bin ich echt noch ein ziemlicher Anfänger. Mit den Verschiebungen schaue ich mal wie das am Ende am besten funktioniert, irgendwie wird das schon funktionieren.

Grüße

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von gast. » Di 8. Jun 2021, 09:46

Achso: Die Verwendung von TikZ-Lib babel und das Verschieben der kritischen Anweisung in die tikzpicture funktioniert natürlich ebenfalls:

\documentclass{scrbook}
\usepackage{array}
% Optionen für das Inhaltsverzeichnis
\KOMAoption{toc}{bibliography,listof}

% Schriftgröße, Trennungsstrich für Kopfzeile, Format A4, Bindungskorrektur für die Innenseite
\KOMAoptions{fontsize=12pt,headsepline=true,paper=a4,BCOR=17mm,headings=normal,captions=tableheading}

% Fettgeschriebene Bezeichnungen für Bilder und Tabellen
\setkomafont{captionlabel}{\bfseries}

% Serifenschrift für Überschriften
\setkomafont{disposition}{\normalcolor\bfseries}

% Umgang mit Umlauten
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\DeclareUnicodeCharacter{2212}{-}


% Geforderte Schriftart
\usepackage{lmodern}

% Für die chemischen Formel
\usepackage{chemformula} 

% PGF-Dateien einbinden
\usepackage{pgf}

% Deutsche Trennung
\usepackage[ngerman]{babel}

% Zitate trennen, damit nicht über den Rand geschrieben wird
\usepackage{breakcites}

% Zeichnen mit tikz
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\usetikzlibrary{arrows}
\usetikzlibrary{babel}

% Notizen
\usepackage{todonotes}

% Mathepakete
\usepackage{amsmath,amssymb,amstext}

% Paket für Bilder
\usepackage{graphicx}

% Eineinhalb Zeilen Abstand
\usepackage[onehalfspacing]{setspace}

% Si-Einheiten
\usepackage{siunitx}
\sisetup{output-decimal-marker = {,}}

% Wissenschaftliche Tabellen
\usepackage{booktabs}

\usepackage{pdfpages}

% Links im Dokument
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=false, allbordercolors=white}

\usetikzlibrary{matrix,positioning,shapes.arrows}

\colorlet{mygreen}{green!20}
\colorlet{myyellow}{yellow!20}
\colorlet{myred}{red!20}
\colorlet{darkyellow}{black!50!yellow}
\colorlet{captioncolor}{gray!20}

\newcommand*{\addcaption}[1]{%
  \renewcommand{\arraystretch}{0.5}%
  \begin{tabular}{@{}>{\scriptsize}l@{}}
  #1%
  \end{tabular}%
}

\begin{document}

\begin{tikzpicture}[
  font=\sffamily, 
  caption font/.style={font=\sffamily\footnotesize}
]
\pgfmathsetlengthmacro{\boxWidth}{width("kein Schaden")+3mm}%
\newcommand{\boxHeight}{1cm}%
\matrix[
  matrix of nodes,
  nodes={
    draw, 
    font=\sffamily\Large,
    minimum width=\boxWidth,
    minimum height=\boxHeight,
    anchor=center
  },
  row sep=-\pgflinewidth,
  column sep=-\pgflinewidth,
  row 1/.style={
    nodes={
      caption font, 
      fill=captioncolor
    }
  },
  column 1/.style={
    nodes={
      caption font, 
      fill=captioncolor,
      minimum width=width("sehr gering")
    }
  }
] (m) {
              & kein Schaden & gering & mittel & hoch\\
  sehr gering & |[fill=mygreen]| \addcaption{Katastrophe in \\ der Jause} & 2 & 3 & 4\\
  gering      & 2 & |[fill=myyellow]| 3 \addcaption{Erstes Wort,\\zweites Wort} & 4 & 5\\
  mittel      & 3 & 4 & |[fill=myred]| 5 & 6\\
  hoch        & 4 & 5 & 6 & 7\\
};

\path [
  caption font, 
  above, 
  nodes={draw, fill=black!20!yellow}, 
  minimum height=\boxHeight/2
]
  (m-1-3.north) -- 
    node [
      minimum width=4*\boxWidth, 
      yshift=-\pgflinewidth
    ] (ms) {Mögliche Schadensschwere} 
  (m-1-4.north)
  (m-4-1.west) --
    node [
      minimum width=4*\boxHeight, 
      xshift=\pgflinewidth, 
      rotate=90
    ] (w) {Wahrscheinlichkeit}
  (m-3-1.west)
;

\path 
  (w.north|-m-2-1.north) -- coordinate (rm south) (m-2-1.north east)
  (ms.north west) -- coordinate (rm east) (m-1-2.south west)
;
\node at (rm south|-rm east) {Risikomatrix};

\matrix [
  matrix of nodes,
  caption font,
  below=0mm of m,
  column 1/.style={execute at end node={:}},
  column 2/.style={anchor=base west}
] (legend) {
  1--2 & keine Risikoreduzierung nötig\\
  3--4 & Risikoreduzierung notwendig\\
  5--7 & Risikoreduzierung dringend notwendig\\
};

\node [
  single arrow, 
  draw, 
  fill=yellow, 
  minimum height=\boxHeight
] at (m-5-1.east|-legend) {};
\end{tikzpicture}
\end{document}

So gesehen, ist das vielleicht die schöne Lösung. ;-)

Achja: xcolor wird von tikz ebenfalls bereits geladen.

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von gast. » Di 8. Jun 2021, 09:42

Hier gibt es offensichtlich ein Problem mit der Interpretation der Quote-Character " in:

\pgfmathsetlengthmacro{\boxWidth}{width("kein Schaden")+3mm}

Wie man das schön löst, kann ich nicht sagen. Man kann aber erzwingen, dass " nicht expandiert, sondern wirklich als " interpretiert wird:

\pgfmathsetlengthmacro{\boxWidth}{width(\string"kein Schaden\string")+3mm}

Diesen Trick braucht man bei pgf hin und wieder, insbesondere, wenn man ihn nicht direkt in einer tikzpicture verwendet (oder diese im Argument einer anderen Anweisung hat). Gerade zusammen mit den babel-shorthands (die man natürlich auch explizit abschalten kann), gibt es sonst so einige Probleme.

BTW: Wenn man Code zusammenführt, ist es natürlich sinnvoll, diesen auch zu bereinigen. Also in der Präambel beispielsweise nicht das Laden von pgf- oder TikZ-Libs beliebig verstreuen, sondern zusammen zu kopieren. An der Stelle sei auch erwähnt, dass es keinen Sinn ergibt, bei Verwendung von tikz zusätzlich zuvor noch pgf zu laden. Sich an strukturiertes Arbeiten zu gewöhnen, ist oftmals bei LaTeX mehr als die halbe Miete. Das hilft ohnehin generell bei jeglicher wissenschaftlichen Arbeit.

Wie man ein Minimalbeispiel aus vorhandenem Code generell baut, ist ja unter dem oben bereits enthaltenen Link hinreichend erklärt. Verlinkte Seiten, sind generell Teil der Antwort – nicht selten ein sehr wichtiger Teil.

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von Nikolas_Tamere » Di 8. Jun 2021, 08:55

Hallo und Danke für die Antwort!

Ich schreibe das mit Overleaf und weiß jetzt nicht wie ich das mit dem eingefügten Bild hier dann realisieren soll ehrlich gesagt.

Ich könnte ein PDF davon erstellen und das Diagramm dann so einfügen. Wenn ich was ändern müsste, hätte das halt zur Folge das man jedes Mal wieder eine Neue Datei machen müsste und es nicht direkt im Dokument ändern könnte.

Also wenn ich versuche das Diagramm mit meiner Präambel laufen zu lassen kommt es so:

\documentclass{scrbook}
\usepackage{array}
% Optionen für das Inhaltsverzeichnis
\KOMAoption{toc}{bibliography,listof}

% Schriftgröße, Trennungsstrich für Kopfzeile, Format A4, Bindungskorrektur für die Innenseite
\KOMAoptions{fontsize=12pt,headsepline=true,paper=a4,BCOR=17mm,headings=normal,captions=tableheading}

% Fettgeschriebene Bezeichnungen für Bilder und Tabellen
\setkomafont{captionlabel}{\bfseries}

% Serifenschrift für Überschriften
\setkomafont{disposition}{\normalcolor\bfseries}

% Umgang mit Umlauten
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\DeclareUnicodeCharacter{2212}{-}


% Geforderte Schriftart
\usepackage{lmodern}

% Für die chemischen Formel
\usepackage{chemformula} 

% PGF-Dateien einbinden
\usepackage{pgf}

% Deutsche Trennung
\usepackage[ngerman]{babel}

% Zitate trennen, damit nicht über den Rand geschrieben wird
\usepackage{breakcites}

% Zeichnen mit tikz
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\usetikzlibrary{arrows}

% Notizen
\usepackage{todonotes}

% Mathepakete
\usepackage{amsmath,amssymb,amstext}

% Paket für Bilder
\usepackage{graphicx}

% Eineinhalb Zeilen Abstand
\usepackage[onehalfspacing]{setspace}

% Si-Einheiten
\usepackage{siunitx}
\sisetup{output-decimal-marker = {,}}

% Wissenschaftliche Tabellen
\usepackage{booktabs}

\usepackage{pdfpages}

% Links im Dokument
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=false, allbordercolors=white}

\usetikzlibrary{matrix,positioning,shapes.arrows}

\colorlet{mygreen}{green!20}
\colorlet{myyellow}{yellow!20}
\colorlet{myred}{red!20}
\colorlet{darkyellow}{black!50!yellow}
\colorlet{captioncolor}{gray!20}

\newcommand*{\addcaption}[1]{%
  \renewcommand{\arraystretch}{0.5}%
  \begin{tabular}{@{}>{\scriptsize}l@{}}
  #1%
  \end{tabular}%
}

\begin{document}
\pgfmathsetlengthmacro{\boxWidth}{width("kein Schaden")+3mm}
\newcommand{\boxHeight}{1cm}
\begin{tikzpicture}[
  font=\sffamily, 
  caption font/.style={font=\sffamily\footnotesize}
]
\matrix[
  matrix of nodes,
  nodes={
    draw, 
    font=\sffamily\Large,
    minimum width=\boxWidth,
    minimum height=\boxHeight,
    anchor=center
  },
  row sep=-\pgflinewidth,
  column sep=-\pgflinewidth,
  row 1/.style={
    nodes={
      caption font, 
      fill=captioncolor
    }
  },
  column 1/.style={
    nodes={
      caption font, 
      fill=captioncolor,
      minimum width=width("sehr gering")
    }
  }
] (m) {
              & kein Schaden & gering & mittel & hoch\\
  sehr gering & |[fill=mygreen]| \addcaption{Katastrophe in \\ der Jause} & 2 & 3 & 4\\
  gering      & 2 & |[fill=myyellow]| 3 \addcaption{Erstes Wort,\\zweites Wort} & 4 & 5\\
  mittel      & 3 & 4 & |[fill=myred]| 5 & 6\\
  hoch        & 4 & 5 & 6 & 7\\
};

\path [
  caption font, 
  above, 
  nodes={draw, fill=black!20!yellow}, 
  minimum height=\boxHeight/2
]
  (m-1-3.north) -- 
    node [
      minimum width=4\boxWidth, 
      yshift=-\pgflinewidth
    ] (ms) {Mögliche Schadensschwere} 
  (m-1-4.north)
  (m-4-1.west) --
    node [
      minimum width=4\boxHeight, 
      xshift=\pgflinewidth, 
      rotate=90
    ] (w) {Wahrscheinlichkeit}
  (m-3-1.west)
;

\path 
  (w.north|-m-2-1.north) -- coordinate (rm south) (m-2-1.north east)
  (ms.north west) -- coordinate (rm east) (m-1-2.south west)
;
\node at (rm south|-rm east) {Risikomatrix};

\matrix [
  matrix of nodes,
  caption font,
  below=0mm of m,
  column 1/.style={execute at end node={:}},
  column 2/.style={anchor=base west}
] (legend) {
  1--2 & keine Risikoreduzierung nötig\\
  3--4 & Risikoreduzierung notwendig\\
  5--7 & Risikoreduzierung dringend notwendig\\
};

\node [
  single arrow, 
  draw, 
  fill=yellow, 
  minimum height=\boxHeight
] at (m-5-1.east|-legend) {};
\end{tikzpicture}
\end{document}

Und das funktioniert auf jeden Fall nicht. Ich will gleich darauf hinweisen, dass hier i nder Präambel zweimal Einträge für Tikz sind, einmal so wie ich es vorher hatte und einmal so wie von @Bartman. Daran liegt es aber wohl nicht (hab ein bisschen rumprobiert) oder zumindest nicht daran alleine, ich hab jetzt einfach mal alles drin gelassen.

Gruß

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von gast. » Di 8. Jun 2021, 08:18

Bitte poste keine Codeschnipsel mit Bastelanleitung, sondern zeige, was du wirklich ausprobiert hast. Nur dann kann man das Problem analysieren, ohne auf Spekulationen angewiesen zu sein. Und auch nur dann funktioniert hier der Online-Compiler zuverlässig.

Re: Farbige Rechtecke mit Schrift in definierter Größe Tikz

von Nikolas_Tamere » Di 8. Jun 2021, 08:11

Hallo nochmal,

ich habe natürlich vergangenen Nachmittag direkt versucht die Grafik bei mir einzubinden aber irgendwie wollte das nicht so recht klappen und ich weiß nicht genau warum. Meine aktuelle (ohne Einbeziehung der Grafik von @Bartman):

\documentclass{scrbook}

% Optionen für das Inhaltsverzeichnis
\KOMAoption{toc}{bibliography,listof}

% Schriftgröße, Trennungsstrich für Kopfzeile, Format A4, Bindungskorrektur für die Innenseite
\KOMAoptions{fontsize=12pt,headsepline=true,paper=a4,BCOR=17mm,headings=normal,captions=tableheading}

% Fettgeschriebene Bezeichnungen für Bilder und Tabellen
\setkomafont{captionlabel}{\bfseries}

% Serifenschrift für Überschriften
\setkomafont{disposition}{\normalcolor\bfseries}

% Umgang mit Umlauten
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\DeclareUnicodeCharacter{2212}{-}

% Geforderte Schriftart
\usepackage{lmodern}

% Für die chemischen Formel
\usepackage{chemformula} 

% PGF-Dateien einbinden
\usepackage{pgf}

% Deutsche Trennung
\usepackage[ngerman]{babel}

% Zitate trennen, damit nicht über den Rand geschrieben wird
\usepackage{breakcites}

% Zeichnen mit tikz
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\usetikzlibrary{arrows}

% Notizen
\usepackage{todonotes}

% Mathepakete
\usepackage{amsmath,amssymb,amstext}

% Paket für Bilder
\usepackage{graphicx}

% Eineinhalb Zeilen Abstand
\usepackage[onehalfspacing]{setspace}

% Si-Einheiten
\usepackage{siunitx}
\sisetup{output-decimal-marker = {,}}

% Wissenschaftliche Tabellen
\usepackage{booktabs}

\usepackage{pdfpages}

% Links im Dokument
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=false, allbordercolors=white}

Wenn ich jetzt die Grafik in meine Datei einbinden will mit \input[bilder/Risikoanalyse.tex] (also als Tex-Datei) dann bekomme ich das nicht hin und ich weiß ehrlich gesagt nicht warum. Ich übernehme aus der Präambel von @Bartman folgendes:

\usepackage{array}

\usetikzlibrary{matrix,positioning,shapes.arrows}

\colorlet{mygreen}{green!20}
\colorlet{myyellow}{yellow!20}
\colorlet{myred}{red!20}
\colorlet{darkyellow}{black!50!yellow}
\colorlet{captioncolor}{gray!20}

usetikzlibrary ersetze ich quasi und die anderen Dinge schreibe ich mit in meine Präambel oder nicht? Meine Datei Risikoanalyse.tex sähe dann wie folgt aus:

\newcommand*{\addcaption}[1]{%
  \renewcommand{\arraystretch}{0.5}%
  \begin{tabular}{@{}>{\scriptsize}l@{}}
  #1%
  \end{tabular}%
}

\pgfmathsetlengthmacro{\boxWidth}{width("kein Schaden")+3mm}
\newcommand{\boxHeight}{1cm}
\begin{tikzpicture}[
  font=\sffamily, 
  caption font/.style={font=\sffamily\footnotesize}
]
\matrix[
  matrix of nodes,
  nodes={
    draw, 
    font=\sffamily\Large,
    minimum width=\boxWidth,
    minimum height=\boxHeight,
    anchor=center
  },
  row sep=-\pgflinewidth,
  column sep=-\pgflinewidth,
  row 1/.style={
    nodes={
      caption font, 
      fill=captioncolor
    }
  },
  column 1/.style={
    nodes={
      caption font, 
      fill=captioncolor,
      minimum width=width("sehr gering")
    }
  }
] (m) {
              & kein Schaden & gering & mittel & hoch\\
  sehr gering & |[fill=mygreen]| 1 & 2 & 3 & 4\\
  gering      & 2 & |[fill=myyellow]| 3 \addcaption{Erstes Wort,\\zweites Wort} & 4 & 5\\
  mittel      & 3 & 4 & |[fill=myred]| 5 & 6\\
  hoch        & 4 & 5 & 6 & 7\\
};

\path [
  caption font, 
  above, 
  nodes={draw, fill=black!20!yellow}, 
  minimum height=\boxHeight/2
]
  (m-1-3.north) -- 
    node [
      minimum width=4\boxWidth, 
      yshift=-\pgflinewidth
    ] (ms) {Mögliche Schadensschwere} 
  (m-1-4.north)
  (m-4-1.west) --
    node [
      minimum width=4\boxHeight, 
      xshift=\pgflinewidth, 
      rotate=90
    ] (w) {Wahrscheinlichkeit}
  (m-3-1.west)
;

\path 
  (w.north|-m-2-1.north) -- coordinate (rm south) (m-2-1.north east)
  (ms.north west) -- coordinate (rm east) (m-1-2.south west)
;
\node at (rm south|-rm east) {Risikomatrix};

\matrix [
  matrix of nodes,
  caption font,
  below=0mm of m,
  column 1/.style={execute at end node={:}},
  column 2/.style={anchor=base west}
] (legend) {
  1--2 & keine Risikoreduzierung nötig\\
  3--4 & Risikoreduzierung notwendig\\
  5--7 & Risikoreduzierung dringend notwendig\\
};

\node [
  single arrow, 
  draw, 
  fill=yellow, 
  minimum height=\boxHeight
] at (m-5-1.east|-legend) {};
\end{tikzpicture}

Oder ist das so quatsch? Also ja, ist es offensichtlich - ich checke nur so gar nicht wie man es macht ehrlich gesagt.

Danke für eure Hilfe!


Nach oben