Ist es möglich, Tikz-basierten Text zu erstellen?

Ist es möglich, Tikz-basierten Text zu erstellen?

In einem meiner Tikz-Diagramme habe ich einen einfachen, rot gefüllten Kreis erstellt:

\addplot [mark=*, mark size=3, mark options={solid, fill=red}] coordinates {
(1.25, 0) };

Jetzt möchte ich im Text auf diesen Kreis verweisen und habe mich daher gefragt, ob es möglich ist, einen Befehl zu erstellen, der, wenn er in den Text eingebettet wird, denselben Kreis reproduziert.

BEARBEITEN

Mögliche Lösung funktioniert fast in der Bildunterschrift:

Bildbeschreibung hier eingeben

Antwort1

Der Kreis kann auch in TikZ gezeichnet werden; plotakzeptiert auch markdie Optionen:

\documentclass{article}
\usepackage{tikz}
\newcommand*{\RedCircle}{}
\DeclareRobustCommand*{\RedCircle}{%
  \tikz\path plot[
    mark=*,
    mark size=3,
    mark options={solid, fill=red},
  ] coordinates {(0, 0)};%
}
\begin{document}
Circle: \RedCircle
\end{document}

Ergebnis

Vertikale Zentrierung um mathematische Achse

Das zentrierte Symbol passt besser in Klammern.

\documentclass{article}
\usepackage{tikz}
\newcommand*{\RedCircle}{}
\DeclareRobustCommand*{\RedCircle}{%
  \ensuremath{\vcenter{\hbox{%
    \tikz\path plot[
      mark=*,
      mark size=3,
      mark options={solid, fill=red},
    ] coordinates {(0, 0)};%
  }}}%
}
\begin{document}
Circle (\RedCircle)
\end{document}

Ergebnis

Begrenzungsrahmenkorrektur

TikZ scheint zu vergessen, die Linienbreite der Markierung für die Begrenzungsbox zu berücksichtigen. Der folgende Code fügt einen kleinen Rahmen hinzu, um dies auszugleichen:

\documentclass{article}
\usepackage{tikz}
\newcommand*{\RedCircle}{}
\DeclareRobustCommand*{\RedCircle}{%
  \ensuremath{\vcenter{\hbox{%
    \setlength{\fboxsep}{.21pt}%
    % 0.2pt (half line width)
    % + 0.01pt to get some rounding tolerance
    \setlength{\fboxrule}{0pt}%
    \fbox{%
      \tikz\path plot[
        mark=*,
        mark size=3,
        mark options={solid, fill=red, draw=black},
      ] coordinates {(0, 0)};%
    }%
  }}}%
}
\begin{document}
% Show bounding box:
\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{.1pt}
(\textcolor{cyan}{\fbox{\RedCircle}})
\end{document}

Hinzufügen des Rands innerhalb von TikZ (möglicherweise wird das Bild durch die Externalisierung abgeschnitten):

\documentclass{article}
\usepackage{tikz}
\newcommand*{\RedCircle}{}
\DeclareRobustCommand*{\RedCircle}{%
  \ensuremath{\vcenter{\hbox{%
    \def\BoundingBoxCorrection{.55\pgflinewidth}%
    % .5\pgflinewidth: half the line width, forgotten by TikZ
    % .05\pgflinewidth: some tolerance for rounding errors
    \tikz\path plot[
        mark=*,
        mark size=3,
        mark options={solid, fill=red, draw=black},
      ] coordinates {(0, 0)}
      (current bounding box.south west)
      ++(-\BoundingBoxCorrection, -\BoundingBoxCorrection)
      (current bounding box.north east)
      ++(\BoundingBoxCorrection, \BoundingBoxCorrection)
    ;%
  }}}%
}
\begin{document}
% Show bounding box:
\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{.1pt}
(\textcolor{cyan}{\fbox{\RedCircle}})
\end{document}

Ergebnis

verwandte Informationen