使用 tikz 填充颜色的符号?

使用 tikz 填充颜色的符号?

我试图在文中引用图中显示的数据。为了识别正在讨论的数据,我在文中画出了符号。

我可以使用 tikz 绘制填充了各种颜色的圆圈,如我的 MWE 中所示。我想知道是否有办法以类似的方式绘制其他符号,如菱形、右三角形、正方形、正方形、下三角形或左三角形(请参阅 MWE)?

我想知道这是正确的方法吗?或者有更简单的方法吗?

\documentclass{article}
% draw circles
\usepackage{tikz,siunitx,gensymb}
\newcommand{\tikzcircle}[2][red,fill=red]{\tikz[baseline=-0.5ex]\draw[#1,radius=#2] (0,0) circle ;}%


\begin{document}

    This is a circle with pink filling and blue border (\tikzcircle[blue, fill=pink]{3pt}) \\
    This is a circle with red filling and black border (\tikzcircle[black, fill=red]{3pt}) \\

    I would like to have command like "tikzcircle" for more symbols such as $ \diamond , \triangleright $ or $\triangleleft$ for example. 
\end{document}

答案1

pgfmanual 是满的形状。当然,你可以定义符号如下:

\documentclass{article}
% draw circles
\usepackage{tikz,siunitx}
\usetikzlibrary{shapes.geometric,shapes.symbols}
\newcommand{\tikzcircle}[2][red,fill=red]{\tikz[baseline=-0.5ex]\draw[#1,radius=#2] (0,0) circle ;}%

\newcommand{\tikzsymbol}[2][circle]{\tikz[baseline=-0.5ex]\node[inner
sep=2pt,shape=#1,draw,#2]{};}%

\begin{document}

\tikzsymbol{fill=blue}

\tikzsymbol[ellipse]{minimum width=8pt}

\tikzsymbol[rectangle]{minimum width=8pt,fill=yellow}

\tikzsymbol[diamond]{fill=purple}

\tikzsymbol[trapezium]{fill=purple}

\tikzsymbol[star]{fill=yellow}

\tikzsymbol[kite]{fill=blue}

\tikzsymbol[cylinder]{minimum width=5mm,minimum height=8mm,
cylinder uses custom fill, cylinder end fill=red!50,cylinder body fill=blue}

\tikzsymbol[cloud]{minimum width=8mm,minimum height=4mm}
\end{document}

在此处输入图片描述

我强调这只是所有可能形状中的一个很小的子集。不过,我也认为从长远来看,您不会使用此类命令,而是直接使用tikz,但这只是一个猜测。

答案2

正如@marmot 所暗示的,使用 Ti 有很多方法可以创建各种形状Z,但我会讨论我认为如何最好地实现这些形状以便与文本一起使用,正如您所描述的。

如果您想要额外的自定义符号,其样式为\diamond\triangleright\triangleleft,那么我建议的方法是使用 Ti 创建符号Z,但使用scalerel缩放符号,使它们与\diamond\triangleright和的大小相匹配\triangleleft。这样,您不必担心每次设置符号的大小,它们将与字体的大小很好地缩放。以下是一个例子:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usepackage{scalerel}

\setlength\parindent{0pt} % Turn off paragraph indentation for illustration purposes in MWE

\newcommand{\tikzcircle}[1][red,fill=red]{\scalerel*{\tikz \draw[#1] (0,0) circle (2pt);}{\circ}}

\newcommand{\tikzdiamond}[1][red,fill=red]{\scalerel*{\tikz \draw[rounded corners=0.06pt,#1] (-3pt,0)--++(45:3pt)--++(-45:3pt)--++(-180+45:3pt)--cycle;}{\diamond}}

\newcommand{\tikztriangleright}[1][red,fill=red]{\scalerel*{\tikz \draw[rounded corners=0.1pt,#1] (0,-2.5pt)--++(0,5pt)--++(-30:5pt)--cycle;}{\triangleright}}

\newcommand{\tikztriangleleft}[1][red,fill=red]{\scalerel*{\tikz \draw[rounded corners=0.1pt,#1] (0,-2.5pt)--++(0,5pt)--++(-180+30:5pt)--cycle;}{\triangleleft}}

\begin{document}

\tikzcircle[red], \tikzdiamond[blue, fill=pink], \tikztriangleright[red,fill=orange!50] or \tikztriangleleft[green!60,fill=yellow!50] \\
$\circ$, $\diamond$,  $\triangleright$ or $\triangleleft$\\

\Huge \tikzcircle[red],  \tikzdiamond[blue, fill=pink], \tikztriangleright[red,fill=orange!50] or \tikztriangleleft[green!60!black,fill=yellow!50] \\
$\circ$, $\diamond$,  $\triangleright$ or $\triangleleft$\\

\end{document}

相关内容