Hallo, ich habe folgendes Anliegen. Ich möchte mein entworfenes Symbol nicht an jeder Stelle in einer tikZ-Umgebung neu zeichnen müssen. Daher hatte ich mir vorgestellt, dieses vorher mit irgendeiner Variable zu definieren, die ich dann bei Bedarf einfügen kann. Das Symbol sollte zusätzlich individuell mit Text gefüllt werden. z.B. Checkliste oder Formular XY

Ich freue mich über jeden Tipp :-)

Open in writeLaTeX
\documentclass[11pt]{scrreprt}
\usepackage[top=2cm,left=3cm,right=3cm,bottom=4cm]{geometry}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{microtype} 
\usepackage{booktabs} 
\usepackage{paralist}           
\usepackage{tikz}
\usetikzlibrary{mindmap,trees}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{positioning,shadings}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{shapes.arrows}

\begin{document}

\begin{tikzpicture}
    \draw (0,0) -- (0,2);
    \draw (0,2) -- (2,2);
    \draw (2,2) -- (2,0);
    \draw [out=90, in=-60] (2,0) to (0,0);
\end{tikzpicture}

\end{document}

gefragt 13 Mai '14, 07:11

sascha's gravatar image

sascha
1711817
Akzeptiert: 80%

bearbeitet 13 Mai '14, 09:13

Henri's gravatar image

Henri
10.0k31730


Am besten macht man dies mit einem optionalen Argument zum neuen Makro.

Open in writeLaTeX
\documentclass{article}
\pagestyle{empty}% zum freistellen
\usepackage{tikz}
\newcommand\einheit[1][]{\tikz{
  \draw (0,0) -- (0,2) -- (2,2) -- (2,0) to[out=90, in=-60] (0,0);
  \node[text width=2cm,align=center] at (1,1) {#1};
}}
\begin{document}

\einheit\
\einheit[Checkliste]
\einheit[Formular]
\einheit[Ein zu langer Text f\"ur eine Zeile]

\end{document}

alt text


Mit der baseline Option lassen sich auch noch die Grundlinien ausrichten.

Open in writeLaTeX
\documentclass{article}
\pagestyle{empty}% zum freistellen
\usepackage{tikz}
\newcommand\einheit[1][]{\tikz[baseline=(X.base)]{
  \draw (0,0) -- (0,2) -- (2,2) -- (2,0) to[out=90, in=-60] (0,0);
  \node[text width=2cm,align=center] (X) at (1,1) {#1};
}}
\begin{document}

Text au\ss en
\einheit\
\einheit[Checkliste]
\einheit[Formular]
\einheit[Ein zu langer Text f\"ur eine Zeile]
herum

\end{document}

alt text

Permanenter link

beantwortet 13 Mai '14, 07:50

Henri's gravatar image

Henri
10.0k31730

bearbeitet 13 Mai '14, 07:57

Vielen Dank schon mal aber beim einfügen in meine tikZ-Grafik erhalte ich stets eine Fehlermeldung!

(13 Mai '14, 08:40) sascha

Wenn man das Symbol nicht nur einzeln, sondern auch innerhalb größerer Abbildungen nutzen möchte, dann kann man sich ab der pgf/TikZ Version 3.0.0 ein pic dafür definieren. Das lässt sich dann für die Definition eines Makros wie bei @Henri verwenden, aber auch mehrfach in eine TikZ Umgebung einfügen.

Open in writeLaTeX
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}

\tikzset{
  symbol/.pic={%
    \node[
      minimum width=2cm, minimum height=2cm,
      inner xsep=0pt,text width=2cm,align=center
    ](-symb)at(1,1){\tikzpictext};% node bekommt Namen <picname>-symb
    \draw(-symb.south west) -- (-symb.north west) -- (-symb.north east) -- 
      (-symb.south east) to[out=90, in=-60] (-symb.south west);
  }
}

\newcommand\mysymbol[1][]{%
  \tikz[baseline=(X-symb.base)]\pic[pic text=\strut#1](X){symbol};%
}

\begin{document}
Zwei einzelne im Text \mysymbol[Text] und \mysymbol

Eine Zeichnung mit mehreren:

\begin{tikzpicture}
\path pic(s1){symbol} ++(3,0)pic[pic text=Formular](s2){symbol} 
  +(5,2)pic[pic text=längerer Text](s3){symbol}  +(5,-2)pic[pic text=Checkliste](s4){symbol};
% Verbindungen zeichnen
\path (s1-symb)edge(s2-symb)
      (s2-symb)edge(s3-symb)
            edge(s4-symb)
      (s3-symb)edge(s4-symb);
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 13 Mai '14, 19:50

esdd's gravatar image

esdd
14.2k53251

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×18

Frage gestellt: 13 Mai '14, 07:11

Frage wurde angeschaut: 2,354 Mal

Zuletzt aktualisiert: 14 Mai '14, 11:07