Seite 1 von 1

TikZ Formen mit Befehl aufrufen und Farbe anpassen?

Verfasst: Mo 30. Nov 2015, 10:31
von scaer93
Hallo Liebe LaTeX-Experten,

ich benötige für eine Arbeit einige Symbole, die ich nicht in anderen Paketen gefunden habe. Daher habe ich diese Symbole mit TikZ gezeichnet. Damit ich nicht immer den ganzen Code wiederholen muss, wäre eine Definition recht schön.

Frage: Wie geht das? Dazu mal eine Beispiel (6-Eck mit Punkt):
\documentclass{article}
\usepackage{tikz}
\usepackage{color}

\begin{document}

\begin{tikzpicture}
\draw [line width=0.5em] (60:13.7em) -- (120:13.7em) -- (180:13.7em) -- (240:13.7em) -- (300:13.7em) -- (360:13.7em) -- cycle;
\draw [fill] (0,0) circle [radius=2.5em]
\end{tikzpicture}

\end{document}
Nun wäre es natürlich schön, wenn ich das ganze "tikzpicture" mit einem Befehl, z.B.
\hexacdot
aufrufen könnte. Wie muss ich so etwas definieren?

Gibt es auch die Möglichkeit einige Farben (per HTML-Code) zu definieren und dann das an den Befehl zu übergeben? Also z.B. so in etwa:
Definiere red:=#DF0101 % HTML-Code
\hexacdot{red} % ergibt ein rotes 6-Eck mit rotem Punkt in der Mitte
\hexacdot{#64FE2E} % Oder auch für nicht bereits definierte Farben (hier grün)
Danke und Grüße
S.

Verfasst: Mo 30. Nov 2015, 12:14
von saputello
Sieht verdächtig nach: LaTeX / TikZ: Eigene Makros / Befehle mit mehr als zwei optionalen / zusätzlichen Parametern Angaben aus. Unterschied ist, dass in deinem Fall nicht die ganze tikzpicture zum Befehl wird, aber das generelle Vorgehen sollte ansonsten das gleiche sein.

Verfasst: Mo 30. Nov 2015, 13:07
von esdd
Wenn Du tikz verwendest, wird auch das xcolor Paket geladen. Damit kannst Du bestimmte Farben direkt nutzen oder per Option(en) weitere Farbdefinitionen laden. Außerdem kannst Du auch einfach Farben definieren:
\definecolor{meinefarbe}{HTML}{64FE2E}
Mit Deinem Beispiel und dem Vorschlag von saputello:
\documentclass{standalone} 
\usepackage{tikz}

\definecolor{meinefarbe}{HTML}{64FE2E} 

\newcommand*\hexacdot[1][]{\tikz[#1]{
    \draw [line width=0.5em] 
      (60:13.7em) -- (120:13.7em) -- (180:13.7em) -- (240:13.7em)
      -- (300:13.7em) -- (360:13.7em) -- cycle; 
    \draw [fill] (0,0) circle [radius=2.5em];
}}

\begin{document} 
\hexacdot \hexacdot[meinefarbe] \hexacdot[red] \hexacdot[orange]
\end{document} 

Verfasst: Mo 30. Nov 2015, 16:00
von scaer93
Ah, vielen Dank für die Antworten. Das xcolor-Paket ist dann wirklich deutlich besser...

Den verlinkten Artikel werde ich auf jeden Fall am WE mal genauer betrachten/lesen. Danke für den Link!


Danke auch für das Beispiel. Das war sehr hilfreich. Ich bin immer der Meinung, ein Beispiel sagt mehr als tausend Worte....

Grüße
S.

Verfasst: So 6. Dez 2015, 17:41
von Johannes_B

Verfasst: So 6. Dez 2015, 18:35
von scaer93
Ah, vielen Dank für den Link.
Der dort von Klops angegebene Link hilft auch mir. Ob ich ein Paket für mich daraus mache oder nicht weiß ich zwar noch nicht, aber dieser (also deiner) Vorschlag ist nicht übel.

Grüße
S.

Verfasst: Di 8. Dez 2015, 23:10
von Stefan Kottwitz
Du kannst auch via \savebox etwas mit TikZ gezeichnetes in einer Box speichern und beliebig viele Kopien dann via \usebox ausgeben. Nur falls es noch von Interesse ist. Makro-Kopien von TikZ sind auch ok. Die \savebox-Variante ist zumindest sicherer, wenn man sie innerhalb anderer TikZ-Bilder verwenden muss, den beim Verschachteln von TikZ-Bildern kann man sonst Stil-Einstellungen erben.

Stefan

Verfasst: Mi 9. Dez 2015, 08:07
von Besserwisser
Stefan hat geschrieben:Du kannst auch via \savebox etwas mit TikZ gezeichnetes in einer Box speichern und beliebig viele Kopien dann via \usebox ausgeben.
Was dann aber immer exakt dieselbe Darstellung ausgibt. Parameter wie beim in der Frage angegebenen Befehl \hexacdot sind in diesem Fall bei der Verwendung der Box nicht mehr möglich.

Verfasst: Mi 9. Dez 2015, 08:27
von scaer93
Danke für die Antworten. Für andere Fälle hilft mir der Befehl, danke sehr.


Für das hier beschriebene "Problem" denke ich, dass ich bei obiger Konstruktion bleibe, da ich die Option für Farben nicht verlieren will. Da es "nur" Symbole sind, die irgendwo im Fließtext oder in der Bildunterschrift auftauchen, ist keine Gefahr da, dass die sich mit anderen TikZ-Bildern "streiten".

Grüße
S.