TikZ Formen mit Befehl aufrufen und Farbe anpassen?

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

TikZ Formen mit Befehl aufrufen und Farbe anpassen?

Beitrag 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.

saputello
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 98
Registriert: Do 15. Jan 2015, 08:49

Beitrag 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.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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} 

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag 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.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag 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.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2530
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag 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

Besserwisser

Beitrag 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.

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag 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.

Antworten