我正在通过从以下代码生成六边形哈维·谢泼德:
\DeclareDocumentCommand{\hexagon}{O{Black} m m O{}}{
\fill [#1, #4] ($ (#2) + (0:#3) $) -- ($ (#2) + (60:#3) $) -- ($ (#2) + (120:#3) $) -- ($ (#2) + (180:#3) $) -- ($ (#2) + (240:#3) $) -- ($ (#2) + (300:#3) $) -- cycle;
}
如何给这个六边形添加粗红色轮廓?
答案1
从上下文很难判断您计划如何使用它,但这里有一个\myhex
接受两个参数的命令,其中一个是可选的。
\myhex[<redthickness>]{<radius>}
默认redthickness
为 1.5mm。
\documentclass{article}
\usepackage{tikz}
\newcommand{\myhex}[2][1.5mm]{\draw[red, line width=#1,fill=black](0:#2)--(60:#2)--(120:#2)--(180:#2)--(240:#2)--(300:#2)--cycle;}
\begin{document}
\begin{tikzpicture}
\myhex{1cm}\begin{scope}[xshift=2.5cm]\myhex[2mm]{8mm}\end{scope}
\end{tikzpicture}
\end{document}
答案2
我建议使用shapes.geometric
fromtikz
来实现这一点:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\node[regular polygon,
draw,
regular polygon sides = 6,
minimum size = 2in,
fill=black,
draw=red,
line width=6pt,
] (p) at (0,0) {};
\end{tikzpicture}
\end{document}
答案3
如果你可以使用编译你的文档lualatex
,那么你也可以使用它元帖子替代方案。该luamplib
软件包允许您将 MP 代码作为宏定义的一部分,并可直接访问常用的宏参数。
\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\newcommand{\rhex}[2][0.5]{\ensuremath{\vcenter{\begin{mplibcode}beginfig(0);
path p; p = for i=0 upto 5: (#2, 0) rotated 60i -- endfor cycle;
fill p withcolor 3/4[red, white];
draw p withpen pencircle scaled #1 withcolor 2/3 red;
endfig;\end{mplibcode}}}}
\begin{document}
In normal text: \rhex{5pt}.
Inside maths mode: $\rhex[1]{5pt} + \left(\rhex7\right)^2$
\end{document}
这里我定义了一个可以在文本模式或数学模式下工作的命令。如果你用它编译,lualatex
你应该得到如下结果: