menukeys - Hintergrundfarbe eines einzelnen Elementes ändern

Tabellen und Grafiken erstellen und anordnen


AlexJO
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 9. Aug 2019, 13:37

menukeys - Hintergrundfarbe eines einzelnen Elementes ändern

Beitrag von AlexJO »

Halli Hallo,

ich möchte im Package menukeys die Hintergrundfarbe des ersten Elementes vom Befehl \menu{} ändern. Es soll nur die Hintergrundfarbe des ersten Elementes geändert werden, die übrigen Elemente sollen unangetastet bleiben.

Laut Dokumentation des Packages existiert zum Ändern eines einzelnen Elementes der Befehl

\changemenuelement{<name>}{<element>}{<definition>}
(S. 11)

Ich versuche damit das erste Element beispielsweise auf folgende Weise zu ändern

\changemenuelement{menus}{first}{fill=red}

Es übernimmt die Hintergrundfarbe. Jedoch wird das Element jetzt als einfaches Rechteck gezeichnet und nicht mehr in der typischen Pfeilform. Wie kann ich nur die Hintergrundfarbe ändern, ohne dabei gleichzeitig die Geometrie des Elementes zu ändern?

Danke im Voraus

LG Alex

AlexJO
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 9. Aug 2019, 13:37

Lösung gefunden

Beitrag von AlexJO »

Ok, ich habe jetzt eine Lösung gefunden. Ich möchte sie hier teilen, falls irgendwann mal irgendjemand das gleiche Problem hat.

Es führt wohl kein Weg daran vorbei, den style umzudefinieren. So schnell und einfach, wie ich mir das erhofft hatte, ist es halt mal wieder doch nicht^^

Ich habe die Lösung von Salim Bou im Thread
https://tex.stackexchange.com/questions ... -menu?rq=1
herangezogen und an meine Anforderungen angepasst.

Hier ein Minimalbeispiel:

Code: Alles auswählen

\documentclass[11pt,border=10pt]{standalone}

\usepackage{xcolor}
\usepackage[os=win]{menukeys}

\copymenustyle{menuB}{menus}

\makeatletter
	\tw@declare@style*{menuB}{%
		\tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% erste Element
			\node (tw@node) [tw@menus@base,signal to = east,fill=green]% <-- hier wird die Füllfarbe im ersten Element gesetzt
			{\strut\CurrentMenuElement};
		}%
	}[\hspace{-0.2em}\hspace{0em plus 0.1em minus 0.05em}]%
	{%
		\tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% Folge-/Zwischenelemente
			\node (tw@node) [tw@menus@base,signal from = west,signal to = east]%
			{\strut\CurrentMenuElement};
		}%
	}{%
		\tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% letzte Element
			\node (tw@node) [tw@menus@base,signal from = west]%
			{\strut\CurrentMenuElement};
		}%
	}{%
		\tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{%
			\node (tw@node) [tw@menus@base] {\strut\CurrentMenuElement};
		}%
	}{gray}
\makeatother

\begin{document}

\renewmenumacro{\menu}[,]{menuB}
\menu{foo,bar,fubar}

\end{document}
LG

Antworten