我试图在文中引用图中显示的数据。为了识别正在讨论的数据,我在文中画出了符号。
我可以使用 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}