TikZ實(shí)現(xiàn)五星打分制,超實(shí)用!

TikZ,大名鼎鼎的LaTeX繪圖工具包,它的功能非常強(qiáng)大。
同時(shí),它的學(xué)習(xí)難度也不一般,單單TikZ的官方手冊(cè)就有一千多頁之厚。
不過,這不影響你閱讀本文。因?yàn)槲視?huì)直接貼出代碼,拿來即用,就算你是LaTeX小白也沒關(guān)系。
TikZ能繪制各種有意思的圖,今天向大家介紹如何用TikZ實(shí)現(xiàn)五星打分制。
這里的五星打分制,并不僅僅是一個(gè)??這么簡單,而是實(shí)現(xiàn)諸如一星、一星半、二星、二星半、...、四星、五星這樣的劃分細(xì)致的打分制。
半顆星,一般的工具并不是那么容易實(shí)現(xiàn),但是對(duì)TikZ來說卻很簡單。
用下圖表示下TikZ的五星打分制效果。。

五星打分制有很多用處。比如簡歷中對(duì)自己編程能力的評(píng)價(jià),或者對(duì)自己外語能力的評(píng)價(jià),都可以用五星打分制來衡量。
總之,涉及到評(píng)價(jià)或評(píng)分之處,都可以派上用場。
比如我在對(duì)比分析不同文獻(xiàn)管理軟件的特點(diǎn)時(shí),就用到了TikZ的五星打分制,如下圖。

Ok,說完TikZ五星打分制的效果和用途,現(xiàn)在看看該如何用代碼實(shí)現(xiàn)。
在LaTeX文檔的導(dǎo)言區(qū),添加以下代碼:
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\newcommand{\Stars}[2][fill=yellow,draw=orange]{\begin{tikzpicture}[baseline=-0.35em,#1]
\foreach?\X?in?{1,...,5}
{\pgfmathsetmacro{\xfill}{min(1,max(1+#2-\X,0))}
\path?(\X*1.1em,0)?
node[star,draw,star?point?height=0.25em,minimum?size=1em,inner?sep=0pt,
path?picture={\fill?(path?picture?bounding?box.south?west)?
rectangle??([xshift=\xfill*1em]path?picture?bounding?box.north?west);}]{};
}
\end{tikzpicture}}
然后,在正文中想要插入星標(biāo)符號(hào)的位置,輸入\Stars{數(shù)字}
即可,比如輸入五星的代碼為\Stars{5}
,二星半的代碼為\Stars{2.5}
。
匯總一星到五星的代碼如下:
一星:\Stars{1}?一星半:\Stars{1.5}
二星:\Stars{2}?二星半:\Stars{2.5}
三星:\Stars{3}?三星半:\Stars{3.5}
四星:\Stars{4}?四星半:\Stars{4.5}
五星:\Stars{5}?
閱讀導(dǎo)言區(qū)的代碼就會(huì)發(fā)現(xiàn),默認(rèn)情況下,星標(biāo)的填充(fill)顏色為yellow
,線框(draw)顏色為orange
。
如果把填充色改為red
,則效果如下。
