Seite 1 von 1

menukeys - Hintergrundfarbe eines einzelnen Elementes ändern

Verfasst: Mi 14. Aug 2019, 16:21
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

Lösung gefunden

Verfasst: Do 15. Aug 2019, 16:15
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:
\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