Wie erstelle ich das folgende rechteckige Symbol?

Wie erstelle ich das folgende rechteckige Symbol?

Ich möchte eine Tikz-Zeichnung in Symbolgröße erstellen, mit einem Rechteck, das halb so breit wie das Symbol (und so hoch wie das Symbol) ist, und einem Pfeil, der aus der rechten Mitte des Rechtecks ​​herauskommt und nach rechts zeigt (die Pfeilspitze sollte eher klein sein). Ich habe versucht, so etwas hier zu machen (das Symbol A dient zum Größenvergleich), aber es hat nicht ganz funktioniert:

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}[
  node distance = 0mm,
box/.style = {% definition of rectangle as node
    draw, line width=0.35mm,
  text width=11pt, minimum height=11pt, align=left,
  inner sep=1mm, outer sep=0pt}
                    ]
\node (box1) [label=above:{}] {};
\node (B) [draw, right=of box1] {};
\draw [->] (box1) -- (B);

\end{tikzpicture}

A

\end{document}
  1. Wie kann ich die Breite des Quadrats auf die Hälfte seiner Größe reduzieren?

  2. Wie bringe ich den Pfeil dazu, die rechte Seite des Rechtecks ​​zu verlassen?

  3. Wie erstelle ich rechts vom Rechteck einen „leeren“ Knoten, damit ich einen Pfeil dorthin zeichnen kann?

  4. Wie mache ich die Pfeilspitze kleiner?

Bildbeschreibung hier eingeben

Antwort1

Vielleicht so...

\documentclass[varwidth,border=5]{standalone}
\usepackage{tikz}
\def\abx{\tikz[x=0.75em,y=0.75em,baseline=0]\fill[even odd rule]
(0,0)--(.5,0)--(.5,.45)--(.75,.45)--(.75,.25)--(1,.5)--(.75,.75)--
(.75,.55)--(.5,.55)--(.5,1)--(0,1)--cycle(.1,.1)rectangle(.4,.9);}
\hbadness=10000
\begin{document}
\foreach \f in {\scriptsize,\footnotesize,\small,\normalsize,\large,\huge}{%
\noindent\hbox to1.125in{\texttt{\expandafter\string\f:}} 
\f xX \abx\ yY \\[.5ex]}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Ich verstehe Ihre Frage nicht ganz. Von welchem ​​Symbol sprechen Sie? Hier habe ich Ihre Fragen beantwortet. Wenn die Größe nicht Ihren Anforderungen entspricht, skalieren oder skalieren Sie die Objekte einfach:

  1. \draw (0,0) rectangle (1,2);
  2. \draw [->] (1,1)--+(1,0);
  3. Leerer Knoten ist eine schlechte Praxis, verwenden Sie lieber einen, \coordinate (name) at (1,1);der zu\draw [->] (name)--+(1,0);
  4. Mithilfe der Bibliothek arrows.meta(siehe hier)Verknüpfung) können Sie die Größe des Pfeils folgendermaßen skalieren\draw [-{>[scale=0.7]}] (name)--+(1,0);

Es könnte nützlich sein, ein Bild zu definieren pic, das es Ihnen ermöglicht, eine vordefinierte Form wie einen „Stempel“ zu platzieren. Ich habe ein Bild mit dem Namen definiert mybox:

\documentclass[tikz,convert]{standalone}
\usetikzlibrary{arrows.meta}
\tikzset{mybox/.pic={
\draw (-0.5,-1) rectangle (.5,1);
\draw [-{>[scale=0.5]}] (0.5,0)--+(0.5,0);
}
}
\begin{document}
\begin{tikzpicture}[>=Stealth]
\pic at (0,0) {mybox};
\draw (1,1) arc (135:45:3) pic [red,pos=0.3,scale=0.5,sloped] {mybox}; 
\end{tikzpicture}
\end{document}

Das Ergebnis wäre: mybox pic und seine Verwendung

Antwort3

Ich bin mir nicht sicher, warum Sie hierfür TikZ verwenden möchten. Da Sie dies jedoch möchten, können Sie wie folgt vorgehen:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\newcounter{mybox}
\newlength\myboxminheight
\settoheight\myboxminheight{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\tikzset{%
  pics/my box/.style={%
    code={%
      \stepcounter{mybox}%
      \tikzset{%
        >/.tip={Triangle[length=2.5pt,width=2.5pt]},
        outer sep=0pt,
        every node/.append style={draw},
        make my box/.cd,
        #1,
        /tikz/.cd,
        make my box/my box look,
      }
      \node (box\themybox) [make my box/my box look, label=above:{\myboxlabel}, inner sep=\myboxisep, minimum height=\myboxminht-\myboxlinewidth, minimum width=.5*\myboxminht-.5*\myboxlinewidth] at (0,0) {};
      \draw [->, make my box/my box look, line width=\myboxlinewidth,] (box\themybox.east) -- +(\myboxextarrow,0);
    }
  },
  make my box/.search also={/tikz},
  make my box/.cd,
  line width/.store in=\myboxlinewidth,
  minimum height/.store in=\myboxminht,
  inner sep/.store in=\myboxisep,
  label/.store in=\myboxlabel,
  extend arrow/.store in=\myboxextarrow,
  look/.code={\tikzset{make my box/my box look/.append style={#1}}},
  line width=.35mm,
  minimum height=\myboxminheight,
  inner sep=0pt,
  label={},
  extend arrow=5pt,
  my box look/.style={draw, line width=\myboxlinewidth},
}
\newcommand\mybox[1][]{%
  \tikz{\pic {my box={#1}};}}
\begin{document}
  X \mybox{} \mybox[label={My Box}] \mybox[look={text=red, draw=blue}, extend arrow=25pt, minimum height=20pt, inner sep=2mm, line width=2.5pt, label={My Other Box}, >/.tip={Stealth[]}]
\end{document}

Pfeile

Beachten Sie, dass das Feld einer Glyphe möglicherweise Platz über dem gezeichneten Buchstaben enthält und dass nicht alle Großbuchstaben aus der Nähe gleich hoch aussehen. Daher müssen Sie dies entsprechend Ihren Vorlieben, der Schriftkonfiguration und Ihren Anforderungen anpassen.

Antwort4

Hier ist eine Lösung mit pstricks:

\documentclass{article}

\usepackage{pst-node}
\usepackage{auto-pst-pdf} \newcommand\mysymbol{\begin{pspicture}%
\fnode[linewidth=0.4pt, linecolor=blue, framesize=3.5pt 7pt, dimen=middle](0,3pt){R}
\uput{2.5ex}[r](R){\pnode{W}}\ncline[arrows=->, linecolor = red, linewidth=0.6pt, linejoin=1, nodesepA=0.5pt, arrowinset=0.15,arrowsize=2pt]{R}{W} \end{pspicture}}%

\begin{document} 

A\enspace\mysymbol 

\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen