我只是想得到一个圆角框,里面有一些文字。文字颜色将为白色,框将填充特定颜色。
序言部分包括:
\usepackage{tikz}
\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,%
decorations.pathreplacing,decorations.pathmorphing,shapes,%
matrix,shapes.symbols,plotmarks,decorations.markings,shadows}
我使用的代码是:
\begin{tikzpicture}
\node[drop shadow,fill=black,draw,rounded corners]
{\textcolor{white}{TEST}};
\end{tikzpicture}
如何在填充选项中指定任意颜色(0-255 范围内的 RGB 值)?
另外,我是否使用过于先进的工具(tikz)来做一些简单的事情(绘制一个用某种颜色填充的圆角矩形和其他颜色的文本)?
答案1
在回答你的第一个问题 - 混合(例如)RGB 格式的颜色 - 你可以使用类似于xcolor
包裹 文档,因为 TikZ 可以识别这一点。例如,使用以下方法可以得到黑色和绿色的混合/共享比例:
\node[...,fill=black,...]
\node[...,fill=black!60!green,...]
\node[...,fill=black!30!green,...]
\node[...,fill=green,...]
和展示
或者,如果你有兴趣混合某些数量RGB 颜色,您可以使用部分混合,如下所示:
\node[...,fill={rgb:red,4;green,2;yellow,1},...]
\node[...,fill={rgb:red,1;green,2;blue,5},...]
\node[...,fill={rgb:orange,1;yellow,2;pink,5},...]
\node[...,fill={rgb:black,1;white,2},...]
输出
为了回答你的第二个问题 - 处理盒子 - 你可以使用fancybox
包裹甚至PStricks
。下面是使用后者的示例:
\documentclass{article}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}(5,5)
\psset{fillstyle=solid,framearc=.3}
\psframebox[fillcolor=red]{\textcolor{white}{TEST}}
\psframebox[fillcolor=green!50!red]{\textcolor{white}{TEST}}
\psframebox[fillcolor=black!50]{\textcolor{white}{TEST}}
\psframebox[fillcolor={rgb:red,1;green,2;blue,3}]{\textcolor{white}{TEST}}
\end{pspicture}
\end{document}
答案2
一种方法是在序言中预先定义想要使用的所有颜色,例如
\definecolor{mycolor}{rgb}{1,0.2,0.3}
值在区间 (0,1) 内,或
\definecolor{mycolor}{RGB}{255,51,76}
使用 0-255 范围内的整数值(使用比 更合理的名称mycolor
),然后mycolor
可以在所有颜色规范中使用,例如
\node[drop shadow,fill=mycolor,draw,rounded corners]
通过这种方式,您可以控制颜色,也可以通过修改颜色的定义来改变颜色。
答案3
Werner 展示了混合颜色的 rgb 语法,egreg 展示了如何在 RGB 中定义颜色然后使用它。如果您想指定 RGB 值 [0-255] 的颜色而不事先定义它,您可以使用 Werner 展示的 rgb 语法,通过将可选的 div 参数设置为 255(参见xcolor 包文档,第 13 和 16 页)。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikz\node[rounded corners, fill={rgb,255:red,21; green,66; blue,128}, text=white, draw=black] {hello world};
\end{document}
答案4
另一种基于egregs
答案的方法是,在使用之前预先定义想要使用的颜色。这样,在为所有颜色想出名称时就不必那么有创意,如果必须定义许多不同的颜色,这尤其麻烦。然后可以在所有颜色规范中使用颜色(就像序言中定义的颜色一样),例如
...
\definecolor{tempcolor}{rgb}{1,0.2,0.3}
\node[drop shadow,fill=tempcolor,draw,rounded corners]
...
值在区间 (0,1) 内,或
...
\definecolor{tempcolor}{RGB}{255,51,76}
\node[drop shadow,fill=tempcolor,draw,rounded corners]
...
整数值在 0-255 范围内(名称“tempcolor”仅为建议)。
如果您想确保不会覆盖任何先前定义的颜色tempcolor
,您可以随时在单独的范围内定义颜色:
...
{
\definecolor{tempcolor}{rgb}{1,0.2,0.3}
\node[drop shadow,fill=tempcolor,draw,rounded corners]
}
...