在我的论文的图表标题中,我想定义 3 个三角形,并填充 3 种颜色(黄色、红色和黑色)。对于一个三角形,它工作正常。我如何定义其他两个具有不同填充的三角形。
以下是论文和章节的 MWE:
\documentclass[b5paper,twoside,10pt,openright]{book}
\usepackage[english]{babel}
\usepackage{charter}
\usepackage{etoolbox}
\usepackage{tikz}
\definecolor{mycolor1}{RGB}{255,255,0} % yellow
\definecolor{mycolor2}{RGB}{255,0,0} % red
\definecolor{mycolor3}{RGB}{0,0,0} % black
\newrobustcmd*{\mytriangle}[1]{\tikz{\draw[thick, fill=mycolor1] ((0,0) -- (0.2cm,0) -- (0.1cm,0.2cm) -- cycle;}}
%\newrobustcmd*{\mytriangle}[1]{\tikz{\draw[thick, fill=mycolor2] ((0,0) -- (0.2cm,0) -- (0.1cm,0.2cm) -- cycle;}}
%\newrobustcmd*{\mytriangle}[1]{\tikz{\draw[thick, fill=mycolor2] ((0,0) -- (0.2cm,0) -- (0.1cm,0.2cm) -- cycle;}}
\begin{document}
this is my thesis
\include{introduction}
\end{document}
这是章节简介的代码:
\chapter{introduction}
\begin{figure}[htp]
A figure
\caption{This is a triangle {\mytriangle{mycolor1}}}
\end{figure}
答案1
根据@Pier Paolo 的评论,您可以使用\mytriangle
带参数的命令。该参数用于传递您想要的颜色。
1.请注意,您不需要定义这些颜色。它们在您加载时已经定义tikz
。因此您只需使用\mytriangle{red}
。
2.请注意,您原来的三角形(用 生成(0,0) -- (0.2cm,0) -- (0.1cm,0.2cm) -- cycle
)不是等边三角形。
因此,我决定利用极坐标创建一个内接于半径为 的圆的等边坐标\radius
。请注意使用
\newlength{\radius} \setlength{\radius}{.2cm}
3.我还定义了另外两个以相同方式工作的命令,并对颜色进行了强制参数设置。
平均能量损失
\documentclass{report}
\usepackage{etoolbox}
\usepackage{tikz}
\usepackage{lipsum}
%%\definecolor{mycolor1}{RGB}{255,255,0} % yellow
%%\definecolor{mycolor2}{RGB}{255,0,0} % red
%%\definecolor{mycolor3}{RGB}{0,0,0} % black
\newlength{\radius}
\setlength{\radius}{.2cm}
\newrobustcmd*{\mytriangle}[1]{\tikz{\draw[thick, fill=#1] (90:\radius) -- (210:\radius) -- (330:\radius) -- cycle;}}
\newrobustcmd*{\mysquare}[1]{\tikz{\draw[thick, fill=#1] (45:\radius) -- (135:\radius) -- (225:\radius) -- (315:\radius) -- cycle;}}
\newrobustcmd*{\mycircle}[1]{\tikz{\draw[thick, fill=#1] (0,0) circle (\radius);}}
\begin{document}
\lipsum*[1] \mytriangle{yellow} \quad \mytriangle{red} \quad \mytriangle{black}
%
\lipsum*[2] \mysquare{yellow} \quad \mysquare{red} \quad \mysquare{black}
%
\lipsum*[5] \mycircle{yellow} \quad \mycircle{red} \quad \mycircle{black}
\end{document}